0
我想基於字符串來對數據框進行子集合。 我可以使用一個長度字符串進行此項工作,但不能使用多個(未知)長度的字符串。有任何想法嗎?提取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
This Works。我得到所有與狗的行。
sp <- c("dog", "ant")
fun(sp)
[1] a b
<0 rows> (or 0-length row.names)
這是行不通的。我想要狗和螞蟻的行,但沒有得到。
解決方法:只使用%的%,而不是==(感謝docendo-discimus)
fun <- function(sp){
a <- x[x$b%in%sp,]
a)
}
您需要使用'%in%'代替'==' –