小编str*_*oop的帖子

dplyr:根据变量字符串选择的多列改变新列

鉴于此数据:

df=data.frame(
  x1=c(2,0,0,NA,0,1,1,NA,0,1),
  x2=c(3,2,NA,5,3,2,NA,NA,4,5),
  x3=c(0,1,0,1,3,0,NA,NA,0,1),
  x4=c(1,0,NA,3,0,0,NA,0,0,1),
  x5=c(1,1,NA,1,3,4,NA,3,3,1))
Run Code Online (Sandbox Code Playgroud)

我想min使用 dplyr 为所选列的行最小值创建一个额外的列。使用列名很容易:

df <- df %>% rowwise() %>% mutate(min = min(x2,x5))
Run Code Online (Sandbox Code Playgroud)

但是我有一个很大的 df 列名不同,所以我需要从一些值字符串中匹配它们mycols。现在其他线程告诉我使用选择辅助函数,但我一定遗漏了一些东西。这是matches

mycols <- c("x2","x5")
df <- df %>% rowwise() %>%
  mutate(min = min(select(matches(mycols))))
Error: is.string(match) is not TRUE
Run Code Online (Sandbox Code Playgroud)

并且one_of

mycols <- c("x2","x5")
 df <- df %>%
 rowwise() %>%
 mutate(min = min(select(one_of(mycols))))
Error: no applicable method for 'select' applied to an object of class "c('integer', 'numeric')"
In addition: Warning message:
In one_of(c("x2", …
Run Code Online (Sandbox Code Playgroud)

variables select r dplyr

0
推荐指数
1
解决办法
3886
查看次数

标签 统计

dplyr ×1

r ×1

select ×1

variables ×1