在for循环R中附加值,就像在python中一样

在for循环R中附加值,就像在python中一样,python,r,list,for-loop,Python,R,List,For Loop,我试图在R中重现Python中创建的以下函数 # Python def square_area(side): return side * side results = [] for i in range(1, 10): x = square_area(i) results.append(x) print results 结果 [1, 4, 9, 16, 25, 36, 49, 64, 81] [[1]] [1] 1 [[2]] [1] 4 [[3]] [1]

我试图在R中重现Python中创建的以下函数

# Python 
def square_area(side):
    return side * side

results = []
for i in range(1, 10):
    x = square_area(i)
    results.append(x)
print results
结果

[1, 4, 9, 16, 25, 36, 49, 64, 81]
[[1]]
[1] 1

[[2]]
[1] 4

[[3]]
[1] 9

[[4]]
[1] 16

[[5]]
[1] 25

[[6]]
[1] 36

[[7]]
[1] 49

[[8]]
[1] 64

[[9]]
[1] 81

[[10]]
[1] 100
我在R的尝试是:

# R
square_area <- function(side) {
side * side
}

results=list()
for (i in 1:10){ 
x <- square_area(i)
results[i] = x 
}
print(results)
我不知道这是否正确,但我需要将结果作为一个列表,以便稍后在折线图上构建。这看起来更像是一个包含键和值的python字典。如何在R中简单地附加值


谢谢。

我们可以通过在
向量上执行
^
来直接获得此信息

 (1:10)^2
 #[1]   1   4   9  16  25  36  49  64  81 100
如果您需要一个
列表
,只需用
as.list

 as.list((1:10)^2)

我们可以通过在
向量上执行
^
来直接得到这个结果

 (1:10)^2
 #[1]   1   4   9  16  25  36  49  64  81 100
如果您需要一个
列表
,只需用
as.list

 as.list((1:10)^2)

Python中的列表与R中的向量相同,这是完全错误的

列表可以保存许多不同类型的值,向量不能,就像矩阵一样

在Python中,您可以执行以下操作:

[1, [2, 3.333], "I'm a string bitch!", [1, "hollymolly"]]
在R中,这与向量无关。您可以使用列表来完成此操作。这就是为什么被称为列表

我一直在网络上搜索和你一样的东西,似乎用户没有必要像Pythonistas那样使用列表,最糟糕的是,用户把对象列表的含义和向量混淆了,好像它们在哪里是等价的(FALSE)

R中的向量很像Python中的np.array。这就是为什么R很酷,它不需要一个包来处理矩阵

您可以在特定示例中执行以下操作(阅读注释):

然后,您可以根据需要使用列表中的每个值,就像您刚才需要的绘图一样


希望我能帮忙

Python中的列表与R中的向量相同,这是完全错误的

列表可以保存许多不同类型的值,向量不能,就像矩阵一样

在Python中,您可以执行以下操作:

[1, [2, 3.333], "I'm a string bitch!", [1, "hollymolly"]]
在R中,这与向量无关。您可以使用列表来完成此操作。这就是为什么被称为列表

我一直在网络上搜索和你一样的东西,似乎用户没有必要像Pythonistas那样使用列表,最糟糕的是,用户把对象列表的含义和向量混淆了,好像它们在哪里是等价的(FALSE)

R中的向量很像Python中的np.array。这就是为什么R很酷,它不需要一个包来处理矩阵

您可以在特定示例中执行以下操作(阅读注释):

然后,您可以根据需要使用列表中的每个值,就像您刚才需要的绘图一样


希望我能帮忙

这很好,但我需要学习如何在使用更复杂的函数时将值附加到列表中。这只是一个例子。这个问题描述了我的最终目标@johnred您的尝试也有效。我认为(我在1:10中)有一个拼写错误
谢谢你发现了这个拼写错误。然而,在我看来,结果就像一本python字典。您如何将其作为python列表中的一个数字序列来获取?@johnread Just
unlist
results
。i、 .e
unlist(结果)
获取一个
向量
输出。但是你不会像python中那样得到
[]
。要注意术语的不同:
python中的
list
R
中的
vector
。将向量初始化为
results=rep(NA,10)
,这很好,但我需要学习在使用更复杂的函数时如何将值附加到列表中。这只是一个例子。这个问题描述了我的最终目标@johnred您的尝试也有效。我认为(我在1:10中)有一个拼写错误
谢谢你发现了这个拼写错误。然而,在我看来,结果就像一本python字典。您如何将其作为python列表中的一个数字序列来获取?@johnread Just
unlist
results
。i、 .e
unlist(结果)
获取一个
向量
输出。但是你不会像python中那样得到
[]
。要注意术语的不同:
python中的
list
R
中的
vector
。以
results=rep(NA,10)