小编pat*_*656的帖子

从R中的变量列表创建一个变量?

我在数据帧中有一系列变量(超过100个),并且我想创建一个指示符变量,以了解任何变量中是否存在特定的文本模式。以下是具有三个变量的示例。我发现的一种解决方案是使用,tidyr::unite()然后使用dplyr::mutate(),但是我对不必统一变量的解决方案感兴趣。

c1<-c("T1", "X1", "T6", "R5")
c2<-c("R4", "C6", "C7", "X3")
c3<-c("C5", "C2", "X4", "T2")

df<-data.frame(c1, c2, c3)

  c1 c2 c3
1 T1 R4 C5
2 X1 C6 C2
3 T6 C7 X4
4 R5 X3 T2

code.vec<-c("T1", "T2", "T3", "T4") #Text patterns of interest
code_regex<-paste(code.vec, collapse="|")

new<-df %>% 
  unite(all_c, c1:c3, remove=FALSE) %>% 
  mutate(indicator=if_else(grepl(code_regex, all_c), 1, 0)) %>% 
  select(-(all_c))

  c1 c2 c3 indicator
1 T1 R4 C5 1
2 X1 C6 C2 0
3 T6 C7 X4 0 …
Run Code Online (Sandbox Code Playgroud)

r dplyr tidyverse mutate

7
推荐指数
2
解决办法
315
查看次数

标签 统计

dplyr ×1

mutate ×1

r ×1

tidyverse ×1