我想使用 mutate 在数据框中创建一个列表变量/列(实际上是一个 tibble
)。这是我的问题的简化版本:
Y = c(12,10,15)
df = tibble(z=seq(1,20)) %>% mutate( zz = ifelse(z>Y,z,Y) )
换句话说,df
中的变量 zz
必须包含 3 个值的列表,其中 Y
的每个值都被替换为 z
当且仅当 z>Y
。
但是,mutate
不会生成一列 3 元素列表。它向我发出警告并生成一个包含 60 个元素的向量。
最佳答案
您需要将 mutate 与 map 结合使用,并且 pmax 比 if_else 更简洁:
df <- df %>%
mutate(zz = map(z, ~pmax(.x, Y)))
关于r - 在 R 中使用 mutate 创建一个列表变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67801628/