我有一个来自机器输出的数据集,列以数字命名。我需要按名称删除某些列,因为我不想依赖于范围的位置(例如42:67,在不同的数据集中可能是40:60)。当我读取CSV数据集时,我设置
check.names=FALSE
为了不让
x
在每一列前面。我这样做是因为当我融化/收集数据时,我需要数字方面来排序和绘制数据,所以我不想处理x。
这是我正在尝试的但不起作用的。。。
#Listing the column names to cut from beginning
beg.noise <- seq(from = 285, to = 414, by = 3)
#Listing the column names to cut from ending
end.blank <- seq(from = 1134, to = 1182, by = 3)
#Merging lists
columns.to.cut <- c(beg.noise, end.blank)
#Method 1
clean.data <- subset(sample.data, select= -columns.to.cut)
#Method 2
clean.data <-sample.data[,-columns.to.cut]
#Method 3 not much different that 1st
clean.data <- dplyr::select(sample.data, -columns.to.cut)
具有300列和2行观测值的示例数据
sample.data <- as.data.frame(matrix(ncol=300, nrow=3, byrow = TRUE, c(as.character(seq(from=285, to= 1182, by=3)), rnorm(300, mean=0, sd=1), rnorm(300, mean=0, sd=1))))
#Setting first row as column headers
colnames(sample.data) <- as.character(unlist(sample.data[1,]))
sample.data = sample.data[-1, ]