我在下面有以下 file.txt
Column A Column B Column C Column D Column E.....
1 A yes yes yes
2 A yes
3 A yes yes
4 B yes yes yes
5 B yes yes
6 B yes yes
7 C yes yes yes
8 C yes
9 D yes yes
我想将“是”的所有实例更改为其各自的 B 列值,使其看起来像这样:
Column A Column B Column C Column D Column E.....
1 A A A A
2 A A
3 A A A
4 B B B B
5 B B B
6 B B B
7 C C C C
8 C C
9 D D D
我尝试了以下方法:
数据 <- data.frame(lapply(file.txt, function(x) { gsub("yes", file.txt$ Column B
, x) }))
但是它将每行的所有实例“是”更改为仅“A”而不是其各自的 B 列值。
您可以使用ifelse
带有lapply
-
file.txt[] <- lapply(file.txt,function(x) ifelse(x == 'yes', file.txt$ColumnB,x))
file.txt
或者使用dplyr::across
-
library(dplyr)
file.txt <- file.txt %>% mutate(across(.fns = ~ifelse(. == 'yes', ColumnB, .)))
file.txt
# ColumnA ColumnB ColumnC ColumnD
#1 1 A A A
#2 2 A A
#3 3 A A
#4 4 B B B
#5 5 B B
#6 6 B B
#7 7 C C C
#8 8 C C
#9 9 D D
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句