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 がデータ フレームに追加されます。欠損値については、常にプロット番号を入力し、それ以外には 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 に答える