首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算R中每个对象的长度

计算R中每个对象的长度
EN

Stack Overflow用户
提问于 2016-09-08 10:14:19
回答 3查看 551关注 0票数 0

我想计算R中许多对象的长度,并返回名称-前缀' length _‘的对象。但是,当我键入此代码时:

代码语言:javascript
复制
A <- c('A', 'B', '3')
B <- c('A', '2')
files <- ls()
for (i in 1:length(files)) assign(paste("length_",files[i], sep = ""), length(unlist(files[i])))

这将返回向量length_A和length_B,但每个向量的值为1,而不是3和2。

谢谢你的帮助,保罗

附注:实际上,我想将它应用到不同的函数中,而不是长度(GC.content从包ape中计算DNA-序列的GC含量),但是对于这个函数,我和上面的例子有相同的问题。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-09-08 11:01:25

代码语言:javascript
复制
A <- c('A', 'B', '3')
B <- c('A', '2')
files <- ls()
for (i in 1:length(files)) assign(paste("length_",files[i], sep = ""), length(get(files[i])))

这将创建一个值3的length_A和值2的length_B。

票数 0
EN

Stack Overflow用户

发布于 2016-09-08 11:48:30

在R3.2.0中,引入了lengths函数来计算列表中每一项的长度。使用这个函数,正如@docendo-弟子穆斯在上面的注释中所指出的那样,超级紧凑(和R-类)解决方案是

代码语言:javascript
复制
lengths(mget(ls()))

返回一个命名向量。

代码语言:javascript
复制
A B 
3 2 

mget返回环境中的对象列表,类似于“多个get”。

票数 2
EN

Stack Overflow用户

发布于 2016-09-08 10:22:52

代码语言:javascript
复制
A <- c('A', 'B', '3')
B <- c('A', '2')
files <- list(A,B)
sapply(files,length)

这会给你答案,但我不知道这是不是你想要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39388247

复制
相关文章

相似问题

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