0
文字列に基づいてデータフレームをサブセット化したい。 私は1つの長さの文字列でこの作業を行うことができますが、複数の(未知の)長さの文字列ではできません。何か案は?長さの文字列が不明なデータを抽出するR
x <- data.frame(a=1:8, b=rep(c("ant", "bee", "beetle", "dog"),2))
fun <- function(sp){
a <- x[x$b==sp,]
return(a)
}
sp <- "dog"
fun(sp)
a b
4 4 dog
8 8 dog
これは機能します。私は犬ですべての列を取得します。
sp <- c("dog", "ant")
fun(sp)
[1] a b
<0 rows> (or 0-length row.names)
これは機能しません。私は犬と蟻で行を望むが、何も得られない。
ソリューション:ちょうどあなたの関数で
fun <- function(sp){
a <- x[x$b%in%sp,]
a)
}
あなたは '=='の代わりに '%in%'を使う必要があります –