如何在R中删除日期与时间列?解决subset删除列报错问题
解决R中删除数据框列报错的问题
错误原因
你写的代码里,select = -c(newpHdata$Dates)是把列的实际值(Date类型或时间类型的向量)传进去了,而subset的select参数需要的是列名或者列的索引位置,对Date/时间类型的向量用负号自然会触发类型不匹配的报错。
正确的删除方式
以下几种方法都能顺利删除目标列:
方法1:直接用列名指定(推荐)
在select参数里直接用负号加列名,不用$引用列值:
# 一次性删除两列 newpHdata = subset(newpHdata, select = -c(Dates, Time)) # 分两次删除也可以 newpHdata = subset(newpHdata, select = -Dates) newpHdata = subset(newpHdata, select = -Time)
方法2:用列的索引位置
如果你清楚这两列在数据框中的位置(比如Dates是第3列、Time是第4列),可以用索引删除:
newpHdata = subset(newpHdata, select = -c(3,4))
方法3:直接操作数据框索引
除了subset函数,也可以直接通过数据框索引删除列:
# 方式一 newpHdata = newpHdata[, !names(newpHdata) %in% c("Dates", "Time")] # 方式二(更简洁) newpHdata[c("Dates", "Time")] = NULL
内容的提问来源于stack exchange,提问作者highclef
相关产品推荐
相关产品推荐

