2010-04-09 58 views
1

下面是一些示例數據:R:如何將選擇表達式(本例中爲字符串)的列表傳遞給子集函數?

data = data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6)) 

> data 
    series reading 
1  1a  0.1 
2  1b  0.4 
3  1e  0.6 

,我可以使用子拉出選擇性單排:採用邏輯或

> subset (data, series == "1a" | series == "1e") 
    series reading 
1  1a  0.1 
3  1e  0.6 

> subset (data, series == "1a") 
    series reading 
1  1a  0.1 

,並拉出多行,但是如果我有很長的系列表達式列表,這會讓輸入變得非常煩人,所以我寧願用更好的方式來定義它們,例如:

series_you_want = c("1a", "1e") (although even this sucks a little) 

,並能夠做這樣的事,

subset (data, series == series_you_want) 

以上顯然失敗了,我只是不知道該怎麼做到這一點的最好辦法是什麼?

回答

1

你可能想在%in%操作

> dat <- data.frame(series = c("1a", "1b", "1e"), reading = c(0.1, 0.4, 0.6)) 
> series_you_want <- c("1a", "1e") 
> subset(dat, series %in% series_you_want) 
+0

謝謝,RCS,即偉大工程,我還添加了本作上市系列更容易。 series_you_want =「1a,1b,1e」 series_you_want_list = unlist(strsplit(series_you_want,「,」)) – John 2010-04-09 18:07:34

相關問題