有沒有辦法選擇除具有特定名稱的列之外的數據框的所有列:除了使用列名而不是索引外,它將是df[,-1]
的類似物嗎?通過名稱取消選擇列,R
15
A
回答
37
你可以使用矢量子集來做到這一點。首先,創建一個僞數據組:
R> dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
然後用!
操作者逆向選擇:
R> dd[ ,!(colnames(dd) == "A")]
B C D
1 1 1 1
2 2 2 2
3 3 3 3
或者,你可以有:
略短的版本(禮貌@Tomas):
dd[ , names(dd) != "A"]
爲了應付多個列(@Tyler提供)
dd[ ,!(colnames(dd) %in% c("A", "B"))]
7
人們可以使用which()
功能確定柱加以排除。
dd <- data.frame(A = 1:5, B = 1:5, C=1:5)
dd[, -which(names(dd) == "A")]
或正
dd[, which(names(dd) != "A")]
但是,如果沒有一個名爲 「A」 柱,你會得到一個數據幀0列和nrow(dd)
行。所以最好檢查一下名爲「A」的列是否存在。
if(any(names(dd) == "A")) {
dd[, which(names(dd) != "A")]
}
5
的subset
功能已經允許這種類型的語法,從幫助頁面上的例子:
subset(airquality, Day == 1, select = -Temp)
0
對於取消選擇多列,你可以使用dplyr包。舉個例子:
dd = data.frame(A = 1:3, B = 1:3, C=1:3, D=1:3)
library(dplyr)
newdd <- select(dd, -A,-C)
這是@csgillespie建議的另一種方式。
相關問題
- 1. R:取消選擇矩陣或名稱data.frame列
- 2. R個行名稱選擇使用列
- 3. 通過選擇設置Django IntegerField = ...名稱
- 4. 通過名稱鎖定(互斥選擇)
- 5. 通過傳遞列名稱選擇單獨列的值動態
- 6. 使用jQuery選擇/取消選擇使用不同的名稱
- 7. 通過點擊取消選擇NSCollectionViewItem
- 8. 通過選擇下拉菜單選項取消選擇會話
- 9. 通過id選擇並獲取javascript上的屬性名稱
- 10. 通過循環名稱選擇器獲取輸入值
- 11. 如何通過名稱選擇一列? (Python的sqlite3的&)
- 12. 通過Zend Framework的選擇傳遞列名稱用空格()
- 13. 選擇* vs選擇所有列名稱
- 14. 通過屬性名稱通過ASP.NET中的XSL選擇節點
- 15. SQL選擇列名稱,如
- 16. 使用列表和名稱在R中選擇列
- 17. 如何選擇R中與列/行名稱相反的列/行?
- 18. R:選擇或使用元素名稱
- 19. 如何通過點擊選擇並取消選擇一行
- 20. 通過點擊d3選擇/取消選擇
- 21. 獲取名稱,:通過
- 22. 通過多選擇獲取單個列
- 23. 不允許在列表框中取消選擇/取消選擇
- 24. 取消選擇列閃亮
- 25. 選擇數據庫名稱,表名稱和列名稱。
- 26. 的jQuery選擇選項現在的工作(通過名稱)
- 27. 通過名稱選擇複選框的按鈕
- 28. 通過窗口名稱在Selenium中選擇一個選項卡
- 29. R dataframe選擇名稱的某些部分的列
- 30. 在矩陣中選擇值與R中的列名稱