我有一个列表,其中包含15个不同的组,我想在for循环中转换为15个不同的矩阵。但是,我无法使其发挥作用。
a=split(datalist,as.factor(datalist$groups))
当我这样做时,我可以通过键入[1] a [2]等可视化不同的组。我的每个组件(a [1],a [2]等)都在列表中,大小为3x24和他们被认为是非数字的。我使用split命令后得到这些组件。但我需要它们作为数字,这就是为什么我认为我需要将它们转换为矩阵,为此,我尝试制作一个循环,将这些组件转换为15个不同的矩阵,大小为3x24。
对于每个i号码(从1到15)我可以使用
获得矩阵matrix(unlist(a[i]), ncol=columnlength,byrow=rowlength)
这个命令。
然后我开始循环
for (i in 1:15) {
b[i]=matrix(unlist(a[i]), ncol=24,byrow=3)
}
这是错误的,因为我使用b [i],它只指定一个矩阵单位。但我不知道该用什么而不是b [i]。
答案 0 :(得分:0)
我无法理解你的问题。
a=split(datalist,as.factor(datalist$groups))
" a"结果是向量或矩阵| data.frame?
然后你的箱子" b"矩阵,3x24
你想把每一个" a"元素进入" b"矩阵,对吗?
你的" a"有24个元素,每个元素3个元素? (像矩阵......)
b <- as.matrix(a)
无法解决您的问题?
答案 1 :(得分:0)
以下是我使用mtcars
首先,像你已经在做的那样分裂
split.df <- split(mtcars, mtcars$cyl)
然后,创建标记为a
到letters[N]
newnames <- letters[1:length(split.df)]
使用assign
<-
变量名称和数据
for (x in 1:length(newnames)) {
assign(newnames[x], as.matrix(split.df[[x]]))
}