2013-06-11 69 views
4

爲什麼第一行工作,第二行不行?我找不到文檔中有關如何使用哪個選擇數據的原因,儘管偶然我想出了我需要一個逗號。R中這個尾隨逗號的用途是什麼?

sigData <- data[which(abs(data$wc2) > 3*wc2_sd),] 


sigData <- data[which(abs(data$wc2) > 3*wc2_sd)] 
+0

這是一個相當基本的問題,是一個快速搜索谷歌或R的介紹將回答。將來,請先自己做一些研究。 – Justin

+2

嗨R的學習曲線非常高,沒有很好的文檔。對於一個簡單的問題,沒有大拇指向下:)也許我會去抓R介紹書。有什麼建議麼? – SwimBikeRun

回答

4

在第一行後面的逗號表示你的行子集化(記住[是指一個功能子集)

缺乏在第二行尾隨逗號表示你子集化按列。第二行將等同於在括號內使用前導逗號。

sigData <- data[, which(abs(data$wc2) > 3*wc2_sd)] 
+0

很酷啊。明白了,謝謝 – SwimBikeRun

+3

只有在數據框上進行操作。一般來說,沒有逗號的子集意味着您將數據索引爲一個平面向量: 即'm < - matrix(c(1,2,3,4),2,2); m [3]'會給你第三個元素,就像矩陣是一個向量一樣 –

+0

即使在DataFrame的上下文中,我也不確定這是否正確。參見: testof data.frame(matrix(seq1:6),2) >>> typeof(test [c(1)]) [1]「list」 >>> typeof(test [,c (1)]) [1]「integer」 – Alexander