我有一个关于使用"粘贴"的问题功能在R。
环境:
我有1000个数据集,每个数据集的维度为(5 X 100)。
它们分别称为X1,X2,...,X999,X1000。 我想看到每个数据集的第一行。 例如,X1 [1,],X2 [1,],...,X999 [1,],X1000 [1,]。
但是我想用循环来节省时间。 这是我最终生成错误信息的代码。
plot(X1[1,], type="s", col = "deeppink1",
xlab = "Steps")
for(t in 2:1000){
lines(paste("X", t, sep="")[1,], type="s", col = "deeppink1")
}
错误消息msg说
Error in paste("final", t, sep = "")[1, ] :
incorrect number of dimensions
我正在使用此代码来解决问题,但无法解决问题。请帮忙!提前谢谢!
答案 0 :(得分:0)
paste("X", t, sep="")
是一个字符串,而不是变量。
您必须编写get(paste("X", t, sep=""))
来使用您的方法,但您应该将所有数据集放在一个列表中并循环遍历它们:
for(t in 2:1000){
lines(your_list[[t]][1,], type="s", col = "deeppink1")
}
答案 1 :(得分:0)
这是一个阵列解决方案。由于您的所有data.frame都是相同的维度,因此您可以使用数组轻松完成此操作。
示例数据:
Your_array<-array(1:500000,dim=c(100,5,1000)) #rows, columns , frames
显示每个data.frame的第一行
Your_array[1,,]