在 R 中,如何根据列值替换字符串的所有实例

CMS72

我在下面有以下 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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

R:传递字符串向量以替换字符串中的所有实例

用字符串R替换数据框中的所有数字实例

使用dplyR从R中data.frame的所有列中替换特殊字符串

如何对R中的字符串中的数字的所有实例求和

根据 R 中数据框中所有其他列中的字符串值,使用 dplyr 创建一个新列

在R中,我如何用歧义的所有选项替换字符串中的歧义字符,以返回可能的输出向量?

如何更改与R中的字符串匹配的所有列?

根据R中特定列中的值替换所有行值

使用字符串列表R替换所有列值的有效方法

根据 R 中另一列中的值替换一列中第二次出现的字符串

如何根据R中的条件用字符串替换NA?

使用r根据另一列中的值编辑字符串值

如何用R中的字符串字符替换一系列int值

循环目录中的所有表并根据字符串 R 导入特定行

R中的数据操作:用字符串系统替换列中的值

使用R根据字符串是否在另一列中来更改列的值

如果不同的列在 r 中的字符串中具有特定的字符集,如何更新行值

如何在r的列中替换字符串的第n个字符

用R中的字符串值替换变量

根据现有列的子字符串在R data.table中创建列

R - 根据同一行中的字符串修改值列

R编程:根据另一列中的值从拆分字符串中选择元素

将 R 中数据框中的所有值转换为字符串

通过比较每个值与 R 中列中的所有值(即使值的顺序不同)来搜索和提取字符串

如何基于r中的有序向量替换列中的所有值

如何根据R中分隔符之间的出现替换字符串中确切的字符数

根据R中的字符串结尾创建新列

如何在R中的列上提取子字符串,删除所有%字符

R分解所有包含字符串的列