1

which をネストされた grep ステートメントとして使用して実装しようとしています。たとえば、データ フレーム内のすべての肺データを探している場合は、 which ステートメントを使用するだけで簡単に実行できます。

site <- c("lung", "breast", "colon","lung", "brain")

vals <- c(1:5)
df <- data.frame(site,vals)

> df[which(df$site=="lung"),]
  site vals
1 lung    1
4 lung    4

しかし、 "lung" のネストされた grep ステートメントで同じ結果を得たい場合、2 番目の結果が得られません。何か案は?

> df[which (grep("lung",df$site)==TRUE),]
  site vals
1 lung    1

そして、これを少し拡張して列を割り当てたい場合、行 1 と 4 の一致の横に「Y」のようなものを配置する「lung_flag」と言うと、どのように行うのが最善でしょうか?

4

1 に答える 1

2

このような:

df[grep("lung", df$site), ]

また

df[grepl("lung", df$site), ]

grep一致するインデックスのベクトルを返します: c(1, 4),

grepllogical: のベクトルを返しますc(TRUE, FALSE, FALSE, TRUE, FALSE)

于 2013-11-01T17:17:06.727 に答える