r - R:删除列后数据框变成向量
问题描述
我有一个数据框:
L1 2020 NA
1 1 0 0
2 2 1 0
3 3 1 0
我想删除第一列和最后一列,以获得这样的数据框:
2020
1 0
2 1
3 1
我试过:1)
df <- df[,-c(1,ncol(df))]
或 2)
df <- subset(df, select = -c(1,ncol(df)))
对于这两个我得到结果:
[1] 0 1 1
所以我猜它把数据框变成了向量。如何删除这些列以将其保留为数据框?保持这样的状态对我来说很重要。当有更多列时,我没有这个问题。它仅在应该留下一列时更改。
解决方案
在方括号中指定列后,在其后添加,drop=FALSE
。
-argumentdrop
是TRUE
默认的,你正在为这个默认而苦苦挣扎。
df <- data.frame(a=1:10,b=1:10)
df[,1] #R simplifies to a vector via implicit drop=TRUE default
df[,1,drop=FALSE] #dataframe-structure remains
推荐阅读
- go - golang计算两个地理区域的交集面积
- python - 在比较两个数据框中的两列或多列后创建一个新列
- php - 如何从字符串中的日期/时间获取复数值
- assembly - 如何在 ARM 程序集的自定义函数中使用 while 循环(或任何循环)?
- html - 菜单打开时如何更改字体真棒图标的颜色?
- c# - 如何使用 Bouncy Castle 从 URL 读取 C# 中的 DER 扩展文件
- javascript - 尝试登录时出现错误 [ERR_INVALID_ARG_TYPE]
- gradle - 我们应该在回购中包含`.gradle`吗?
- python - 不和谐频道制造商
- flutter - 如何修复 Flutter 中的异常“一旦你调用了 dispose()...”