我是R语言的初学者,所以很抱歉如果以前在这里提出过这个问题,但是我没有找到类似的东西:
我需要的只是从命令中返回向量的 length (在环境中我有两个长度分别为5和6的向量),并与 ls :
for (i in ls()) {print (length(noquote(i)))}
但是,对于两个向量,它都返回1。
感谢您的提示。
答案 0 :(得分:1)
ls()
返回一个字符串向量(类型为character
)。您正在遍历这些字符串,从中删除引号,然后询问这些character
对象有多长时间。
您要执行的操作是使用给定名称访问object
。为此,请将对象名称作为character
传递给函数get
。 get
将接受对象的名称,在环境中进行搜索,然后返回实际对象(如果存在)。然后,您可以将其传递到length
中以获取对象的长度:
for (i in ls()) {print (length(get(i)))}
答案 1 :(得分:1)
我们可以将sapply
与mget
一起使用来计算全局环境中每个对象的长度。 mget
采用带有对象名称的字符向量(在这种情况下,是ls()
返回的全局环境中对象名称的向量),并返回存储在每个名称中的对象列表。 sapply
然后计算列表中每个元素的length
并返回一个长度向量:
sapply(mget(ls()), length)