0

我正在尝试找到一种方法来根据数据框中的条件添加行。我本质上想获取一个数据框并插入缺少的值。这是我的开始:

Plot    Species    Status
1A      ABBI       L
1A      PIEN       D
1B      ABBI       D
1B      PIEN       L
2A      ABBI       L

我希望能够在 Plot 列中搜索 1A、2B 和 3A。由于存在 1A,因此不会有任何操作,但会将 2B 和 2B 添加到数据帧中。对于缺失值,我总是想输入 Plot number 和 0 来表示其他所有值。最终结果如下所示:

Plot    Species    Status
1A      ABBI       L
1A      PIEN       D
1B      ABBI       D
1B      PIEN       L
2A      ABBI       L
2B      0          0
3A      0          0
4

1 回答 1

1

使用merge

df <- read.table(text="Plot    Species    Status
1A      ABBI       L
1A      PIEN       D
1B      ABBI       D
1B      PIEN       L
2A      ABBI       L", header=TRUE, stringsAsFactors=FALSE)

lookfor <- data.frame(Plot=c("1A", "2B", "3A"), stringsAsFactors=FALSE)

res <- merge(df,lookfor,all=TRUE)

res[is.na(res$Species), c("Species", "Status")] <- 0

print(res)

#   Plot Species Status
# 1   1A    ABBI      L
# 2   1A    PIEN      D
# 3   1B    ABBI      D
# 4   1B    PIEN      L
# 5   2A    ABBI      L
# 6   2B       0      0
# 7   3A       0      0

但是,您应该考虑使用NA而不是0表示缺失。

于 2013-09-13T07:56:21.760 回答