我想计算R中许多对象的长度,并返回名称-前缀' length _‘的对象。但是,当我键入此代码时:
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含量),但是对于这个函数,我和上面的例子有相同的问题。
发布于 2016-09-08 11:01:25
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。
发布于 2016-09-08 11:48:30
在R3.2.0中,引入了lengths函数来计算列表中每一项的长度。使用这个函数,正如@docendo-弟子穆斯在上面的注释中所指出的那样,超级紧凑(和R-类)解决方案是
lengths(mget(ls()))返回一个命名向量。
A B
3 2 mget返回环境中的对象列表,类似于“多个get”。
发布于 2016-09-08 10:22:52
A <- c('A', 'B', '3')
B <- c('A', '2')
files <- list(A,B)
sapply(files,length)这会给你答案,但我不知道这是不是你想要的。
https://stackoverflow.com/questions/39388247
复制相似问题