我知道有不同的方法来drop一个column一个data frame的R像
现在我的问题:我有一个数据框说df有400 plus文件的形式nested data frame.
df
[[1]]
SignalIntensity SNR
1 109 6.1823089314 0.8453576915
2 110 10.1727771385 4.3837077591
3 111 7.2922746927 1.0725751161
4 112 8.8984671629 2.3192184908
5 113 9.5910338232 3.7133402249
6 114 7.9850187685 1.5008899345
7 116 7.7893230124 1.3636655582
.
.
.
[[2]]
SignalIntensity SNR
1 109 6.1823089314 0.8453576915
2 110 10.1727771385 4.3837077591
3 111 7.2922746927 1.0725751161
4 112 8.8984671629 2.3192184908
5 113 9.5910338232 …Run Code Online (Sandbox Code Playgroud) 我创建了一个名为z的数据框。
a = c(1,1,1);
b = c(2,2,2);
c = c(3,3,3);
d = c(4,4,4);
z = data.frame(a,b,c,d);
Run Code Online (Sandbox Code Playgroud)
我想从数据框 z 中删除列 c 和 d。
我试过这个代码
p = subset(z , colnames(z) == c('a' , 'b'))
Run Code Online (Sandbox Code Playgroud)
但我得到了这个结果
a b c d
1 2 3 4
1 2 3 4
Run Code Online (Sandbox Code Playgroud)
我应该在此命令中进行哪些更改以从z 中删除c和d列。
可能重复:
Drop Columns R数据框
我有一个要从IRIS表中删除的变量列表,如下所示:
dropList <- c("Sepal.Length", "Sepal.Width")
Run Code Online (Sandbox Code Playgroud)
如何使用此列表从IRIS数据框中删除?(我不想明确地提到职位)
谢谢。
这几乎与此重复.我想从数据表中删除列,但我想有效地完成它.我有一个我想保留的列名列表.联系问题的所有答案都意味着做类似的事情
data.table.new <- data.table.old[, my.list]
Run Code Online (Sandbox Code Playgroud)
在某些关键点上会给我一个新对象,而旧对象仍在内存中.然而,我data.table.old是巨大的,因此我更喜欢通过引用来做到这一点,如此处所示
set(data.table.old, j = 'a', value = NULL)
Run Code Online (Sandbox Code Playgroud)
但是,由于我有列的白名单,而不是黑名单,我需要遍历所有列名,检查它们是否在my.list,然后应用set().有没有更清洁/其他方式这样做?
我想了解如何从R中的数据框中删除变量(如果它们是一元的,只包含一个值).我有时拥有包含数千个变量的数据框,我的第一步就是摆脱那些变量(通常是从数据仓库交给我的).
我明白我可以删除列
drops <- c("x","z")
DF[,!(names(DF) %in% drops)]
Run Code Online (Sandbox Code Playgroud)
如下所述: 按名称删除数据框列
但是我想要一些搜索所有变量的方法,并且只删除一元变量.
菜鸟问题 - 提前感谢您的耐心...
我有一个数据框:
vals <- c(1,1,1,1)
testdf <- data.frame("var1"=vals, "var2"=vals, "var3"=vals)
Run Code Online (Sandbox Code Playgroud)
我有一个变量名的字符向量:
varnames <- c("var1", "var2")
Run Code Online (Sandbox Code Playgroud)
这是一个字符向量 b/c 我用它在脚本的前面生成一个公式。
我想对数据帧进行子集化,以便排除 varnames 中的变量,例如
newDF <- subset(df, select=-varnames)
Run Code Online (Sandbox Code Playgroud)
这会产生错误,因为subset需要名称而不是字符。所以,我lapply用来将字符更改为名称:
varnames <- lapply(varnames, as.name)
Run Code Online (Sandbox Code Playgroud)
这个 lapply 函数的结果是一个命名(?)和嵌套(?)列表。
[[1]]
var1
[[2]]
var2
[[3]]
var3
Run Code Online (Sandbox Code Playgroud)
这就是我迷路的地方(我觉得自己像吃了疯狂药丸的穆加图……这让其他人感到困惑吗!?)。我可以看到每个值都已正确地从字符更改为名称,但它位于这个奇怪的嵌套结构中 - 因此当我尝试进行子集化时,出现错误。
我尝试了各种解决方案来取消嵌套和取消命名,但都没有成功。这一定是我想念的容易的东西。
作为奖励 - 有人能告诉我为什么 lapply 返回这个嵌套的命名列表而不是简单的向量是有用的吗?例如,它似乎与 Python 非常不同。谢谢你。
我有这个数据框:
dput(df)
structure(list(Server = structure(c(1L, 1L, 1L, 1L, 1L, 1L), .Label = "servera", class = "factor"),
Date = structure(1:6, .Label = c("7/13/2017 15:01", "7/13/2017 15:02",
"7/13/2017 15:03", "7/13/2017 15:04", "7/13/2017 15:05",
"7/13/2017 15:06"), class = "factor"), Host_CPU = c(1.812950134,
2.288070679, 1.563278198, 1.925239563, 5.350669861, 2.612503052
), UsedMemPercent = c(38.19, 38.19, 38.19, 38.19, 38.19,
38.22), jvm1 = c(10.91, 11.13, 11.34, 11.56, 11.77, 11.99
), jvm2 = c(11.47, 11.7, 11.91, 12.13, 12.35, 12.57), jvm3 = c(75.65,
76.88, 56.93, 58.99, 65.29, 67.97), jvm4 = …Run Code Online (Sandbox Code Playgroud)