更改数据框中的列

时间:2013-02-21 15:19:48

标签: r dataframe

如果某个列具有特定内容(但不是确切的内容,而是我在Regex中找到的内容),我试图更改R数据框中的一列。

例如:

 df:
 Name        City            Age
 Peter       Fort Wayne      15
 John        South Bend      20
 Christopher Boston          25
 Andy        Boston          30
 Johnathan   Los Angeles     35

现在,如果我想改变名字以John开头的所有人的年龄,我通常会说:

 subset(df, grepl("^John", Name))

哪会给我

 Name        City            Age
 John        South Bend      20
 Johnathan   Los Angeles     35

然而,显然我无法使用

更改它
 subset(df, grepl("^John", Name))$Age <- 20

有一种简单的方法吗?我不想从数据帧中删除行,然后重新插入它们,这是我到目前为止所做的。

感谢您的帮助, 奥利弗

1 个答案:

答案 0 :(得分:6)

尝试:

 df$Age[grepl("^John", df$Name)] <- 20

subset会返回data.frame,您无法将20分配给整个data.frame。而是按列显示索引。