小编En_*_*JK7的帖子

if_else 或替代的向量输出

我正在努力寻找以下问题的答案。

\n

我想通过向量搜索 data.frame 中的列。找到匹配项后,我希望利用“搜索向量”的元素来创建新列的新元素。请参阅下面的可重现示例。

\n
colour <- c('red', 'yellow')\n\na <- c('violet', 'red', 'taupe', 'blue', 'yellow_a', 'yellow_b', 'blue_a', 'red_c')\nb <- c('non', 'prim', 'non', 'prim', 'prim', 'prim', 'prim', 'prim')\nc <- c(1, 2, 3, 4, 5, 6, 7, 8)\n\ndf <- data.frame(a, b, c)\n
Run Code Online (Sandbox Code Playgroud)\n

我尝试过以下方法:

\n
df_clean <- df %>% mutate(d = if_else(str_detect(a, colour), colour, NA_character_))\n
Run Code Online (Sandbox Code Playgroud)\n

输出:

\n

问题:查看帮助文件,我无法从“if_else”输出大于 1 的值,我收到以下信息:

\n
\n

错误:mutate()列有问题d。\xe2\x84\xb9 d = if_else(rep(str_detect(a, colour), length(colour)), colour, NA_character_)。x 的true长度必须为 16( 的长度 …

r dplyr

2
推荐指数
1
解决办法
50
查看次数

标签 统计

dplyr ×1

r ×1