我正在使用R并希望在data.frame中替换多个值,从具有一个值的某些字母开始。
例如下面是我的数据框中的样本值,如XYZ1,XYZ2,XYZ3,XYZ4 ..等等,然后我想将所有以“XYZ”开头的值替换为“ABC”
实施例
df是数据框
V1 V2 V3 V4
XYZ1 XYZ2 XYZ4 XYZ10
XYZ3 RST1 WST3 XYZ11
这里(V1-V4)是我想要替换所有以“XYZ”开头的值变为“ABC”的列。
我想要的结果是
df< -
V1 V2 V3 V4
ABC ABC ABC ABC
ABC RST1 WST3 ABC
单独我可以通过在将每个值转换为字符值后对每个列中的每个值使用==运算符来执行此操作,但是如何一次性将所有值转换为多个列?
答案 0 :(得分:1)
希望这有帮助!
library(dplyr)
df %>%
mutate_all(funs(gsub("XYZ.*","ABC",.)))
#mutate_at(vars(V1:V4), funs(gsub("XYZ.*","ABC",.)))
输出为:
V1 V2 V3 V4
1 ABC ABC ABC ABC
2 ABC RST1 WST3 ABC
示例数据:
df <- structure(list(V1 = c("XYZ1", "XYZ3"), V2 = c("XYZ2", "RST1"),
V3 = c("XYZ4", "WST3"), V4 = c("XYZ10", "XYZ11")), .Names = c("V1",
"V2", "V3", "V4"), class = "data.frame", row.names = c(NA, -2L
))
答案 1 :(得分:0)
或使用gsub
AlarmGroup AgentName
========== ==========
GroupName Thassos
NULL Pythion
NULL Metaxas
NULL Metaxas
GroupName Pilio