更改一列中数据框中的值,其中某些其他列等于某些文本。

时间:2014-12-09 13:52:27

标签: r

给出以下数据帧。如何将所有hab类型更改为" ungrazed"研究区域等于" B"。我似乎需要使用apply函数,但我似乎无法解开正确的构造。提前谢谢。

hab type     Study area
grazed          A
grazed          A
grazed          B
grazed          B
grazed          C
grazed          C

1 个答案:

答案 0 :(得分:1)

你可以尝试

df$hab.type[df$Study.area=='B'] <- 'Ungrazed'
df
#  hab.type Study.area
#1   grazed          A
#2   grazed          A
#3 Ungrazed          B
#4 Ungrazed          B
#5   grazed          C
#6   grazed          C

或者

transform(df, hab.type=replace(hab.type, Study.area=='B', 'Ungrazed'))

数据

df <- structure(list(hab.type = c("grazed", "grazed", "grazed", "grazed", 
"grazed", "grazed"), Study.area = c("A", "A", "B", "B", "C", 
"C")), .Names = c("hab.type", "Study.area"), class = "data.frame", 
row.names = c(NA, -6L))