首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在R中的一个数据框中可以选择多少列?

在R中的一个数据框中可以选择多少列?
EN

Stack Overflow用户
提问于 2018-08-09 06:29:35
回答 2查看 313关注 0票数 1

我想从数据框中选择3117列,我尝试按列名选择它们:

代码语言:javascript
复制
dataframe %>% 
  select(
    'AAACCTGAGCACGCCT-1',
    'AAACCTGAGCGCTTAT-1',
    'AAACCTGAGCGTTGCC-1',
    ......,
    'TTGGAACCACGGACAA-1'
  )

代码语言:javascript
复制
firstpickupnames <- ('AAACCTGAGCACGCCT-1','AAACCTGAGCGCTTAT-1','AAACCTGAGCGTTGCC-1',......,'TTGGAACCACGGACAA-1')

两种方式R控制台刚才都回答了

代码语言:javascript
复制
'AAACCTGAGCACGCCT-1','AAACCTGAGCGCTTAT-1','AAACCTGAGCGTTGCC-
1',......,'TTGGAACCACGGACAA-1'
+ )
+

这是什么意思?在R中我可以选择的列有限制吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-09 20:50:20

控制台回复的方式( +指示它正在等待表达式的其余部分)强烈地表明,您遇到的是控制台处理长命令(您试图通过从剪贴板粘贴来组装)的容量限制,而不是可以选择的列数的固有限制。在文档中,我能找到的唯一有此限制的地方是here,它写着“在控制台输入的命令行限于大约4095字节”。

在注释中,您说要选择的列名位于csv文件中。您没有过多地介绍csv文件的结构,但是假设您有一个包含单个列名列表的csv文件。作为示例,我创建了一个名为"colnames.csv"的文件,该文件只有一行:

代码语言:javascript
复制
Sepal.Width, Petal.Length

请注意,不需要在文本文件中的列名两边手动放置引号。然后在R控制台中输入:

代码语言:javascript
复制
iris %>% select(one_of(as.character(read.csv("colnames.csv",header = FALSE, strip.white = TRUE,stringsAsFactors = FALSE))))

它的工作效果与预期一致。尽管这个示例只使用了2列,但对于3000+,它没有理由失败,因为列数本身并不是您所做的事情的问题。

如果csv文件的结构与示例不同,那么您将需要调整对read.csv的调用,也许还需要调整将其转换为字符向量的方式,但您应该能够根据您的情况调整这种方法。

票数 2
EN

Stack Overflow用户

发布于 2018-08-09 06:53:58

如果没有可重复的示例,很难确切知道您要查找的是什么,但是dplyr::select()有几个用于选择列的选项,而dplyr::everything()可能就是您要查找的列:

代码语言:javascript
复制
library(dplyr)

# this reorders the column names, but keeps everything without having to name the columns specifically:
mtcars %>% 
  select(carb, gear, everything()) 

# from a list of column names:
keep_columns <- c('cyl','disp','hp')
mtcars %>% 
  select(one_of(keep_columns)) 

# specific names, and a range of names:
mtcars %>% 
  select(hp, qsec:gear) 

#You could also use  `contains()`, `starts_with()`, `ends_with()`, or `matches()`. Note that calling all of the following at once will give you no results:
mtcars %>% 
  select(contains('t')) %>%
  select(starts_with('a')) %>% 
  select(ends_with('b')) %>% 
  select(matches('^m.+g$')) 
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51756533

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档