我是 R 的新手,在家庭作业中,我们必须从列表中提取每列的第一个元素并将它们相加。我当前的代码似乎运行良好,但感觉我没有使用 R 的固有特性来有效地处理列表。(相反,感觉我只是在应用我在 Java 中学到的方法来处理列表)我有一个列表:
mylist <- list(points_ex1=c(15,18,12), points_ex2=c(9,16,8), points_ex3=c(83,95,39))
我试图分别对每个向量的第一个/第二个/第三个值求和。对于第一列,这将导致 15+9+83=107
目前,我正在使用两个嵌套的 for 循环来遍历列表,然后将每个元素附加到一个临时向量,再将其总和附加到总点数的向量。
total_points <- NULL #object to append total scores to
for (i in 1:3){
temp <- NULL #object to append points to
for (j in 1:3){
temp <- append(temp, mylist[[j]][i]) #appending the i-th element of each test score vector, before appending that sum
#to the total_points vector and continuing with the next row
}
total_points <- append(total_points, sum(temp))
}
这按预期工作,但感觉它没有使用任何有用的 R 特性(例如像 这样的函数sapply()
)。 有什么好的选择可以改进此代码吗?
这是我在这里的第一个问题,如果我违反了本网站的任何惯例/网络规则,请告诉我!谢谢。