繁体   English   中英

从 r 中的 dataframe 中删除每 n 列

[英]Deleting every nth column from a dataframe in r

我试图通过删除每三列来减小 dataframe 的大小。

这是我的示例 dataframe:

example = data.frame(x=c(1,2,3,4), y=c(1,2,3,4), z=c(1,2,3,4), w=c(1,2,3,4), p=c(1,2,3,4), q=c(1,2,3,4), r=c(1,2,3,4))

看起来像这样

x y z w p q r
1 1 1 1 1 1 1
2 2 2 2 2 2 2
3 3 3 3 3 3 3
4 4 4 4 4 4 4

我想把它转换成看起来像这样的东西

x y w p r
1 1 1 1 1 
2 2 2 2 2 
3 3 3 3 3 
4 4 4 4 4 

我已经能够使用 tidyverse 减少行数:

example <- example %>% dplyr::filter(row_number() %% 3 != 1) 

但我不知道如何删除每三列。

我也尝试过使用这条线:

example[, !(c%%3==0)]

删除 dataframe 中的每第 n 行,但我不断收到此错误:c%%3 中的错误:二进制运算符的非数字参数

在此先感谢您的帮助。

这里是:

library(dplyr)

col_index <- seq(1:ncol(example)) 
example %>% select(col_index[col_index %% 3 != 0]) 

您可以在 base.xml 中以非常简单的方式执行此操作。

example[, c(TRUE, TRUE, FALSE)]

逻辑向量将根据列的需要重复。 如果你想让它扩展,你可以做这样的事情。

n <- 3
example[, c(rep(TRUE, n - 1), FALSE)]

如果您愿意,与此等效的dplyr可以是:

example %>%
  select(everything()[c(TRUE, TRUE, FALSE)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM