質問
たとえば、名前のサブセットに基づいて行を選択したいと思います。
次のデータがある場合:
data <- structure(c(91, 92, 108, 104, 87, 91, 91, 97, 81, 98),
.Names = c("fee-", "fi", "fo-", "fum-", "foo-", "foo1234-", "123foo-",
"fum-", "fum-", "fum-"))
「foo」に一致する行を選択するにはどうすればよいですか?
GREP()を使用しないでください:
grep('foo', data)
戻り値:
integer(0)
私は何が間違っているのですか?または、より良い方法はありますか?
ありがとう!
解決
Valuesプロパティではなく、データの名前のプロパティをグレープする必要があります。
例では、使用してください
> grep("foo",names(data))
[1] 5 6 7
> data[grep("foo",names(data))]
foo- foo1234- 123foo-
87 91 91
これを行うもう1つのクリーンな方法は、データフレームを使用することです。
> data <- data.frame(values=c(91, 92, 108, 104, 87, 91, 91, 97, 81, 98),
names = c("fee-", "fi", "fo-", "fum-", "foo-", "foo1234-", "123foo-",
"fum-", "fum-", "fum-"))
> data$values[grep("foo",data$names)]
[1] 87 91 91
他のヒント
正規表現と組み合わせてサブセットを使用します。
subset(your_data, regexpr("foo", your_data$your_column_to_match) > 0))
1つの列のデータセットを気にする場合は、列名を指定する必要はないと思います...
フィリップ
> grep("foo",names(data), value=T)
[1] "foo-" "foo1234-" "123foo-"
値が真の場合、インデックスの代わりにコンテンツを返します
所属していません StackOverflow