我有一个18乘48的矩阵。 有没有办法在一个单独的变量中自动保存18行中的每一行(例如,从r1到r18)?
答案 0 :(得分:1)
我绝对建议不要将data.frame
或matrix
拆分成其组成行。如果我绝对不得不将行分开,我将它们放在list
中,然后从那里开始操作。
如果你不得不将其分开,你可以这样做:
toy <- matrix(1:(18*48),18,48)
variables <- list()
for(i in 1:nrow(toy)){
variables[[paste0("variable", i)]] <- toy[i,]
}
list2env(variables, envir = .GlobalEnv)
我倾向于在for循环后停止并避开list2env
。但我认为这应该会给你你的结果。
答案 1 :(得分:1)
我相信您可以通过索引从数据框d中选择行r,而不指定列:
var <- d[r,]
因此,您可以使用
将所有行提取到变量中var <- d[1:length(d),]
其中var [1]是第一行,var [2]是第二行。等等..不确定这是否正是您正在寻找的。为什么每行需要18个不同的变量?
答案 2 :(得分:0)
result <- data.frame(t(mat))
colnames(result) <- paste("r", 1:18, sep="")
attach(result)
您的矩阵为mat