r - 在 R 中使用 mutate 创建一个列表变量

标签 r list dplyr

我想使用 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/

相关文章:

r - R中对象的串行修改

python - 如何在pyfiglet python3中获取所有可用的字体

python - 如何访问对列表中对的每个元素?

r - 如何找到一列的总和?

r - 带模式的子集

r - 矩阵索引按它们包含的值排序

java - 如何在多行上打印数组列表?

r - 合并名称中具有相同后缀的多个列 block (R)

r - 合并/加入优先考虑非缺失值

r - 操纵 R 图例