有没有办法选择除具有特定名称的列之外的数据框的所有列:除了使用列名而不是索引外,它将是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中的列名称