在我看來,這應該是很簡單的,但....我想從一個數據幀創建一組數據幀的
a <- 5
b <- 1:a
c <- matrix(rnorm(30, 1), ncol = 5)
out <- lapply(c,c[,i])
Error in c[, i] : invalid subscript type 'list'
我想打破數據幀到其列,並有一組的新數據較小的框架,每列一個
我無法弄清楚我要去哪裏錯了。總是非常感謝幫助。
在我看來,這應該是很簡單的,但....我想從一個數據幀創建一組數據幀的
a <- 5
b <- 1:a
c <- matrix(rnorm(30, 1), ncol = 5)
out <- lapply(c,c[,i])
Error in c[, i] : invalid subscript type 'list'
我想打破數據幀到其列,並有一組的新數據較小的框架,每列一個
我無法弄清楚我要去哪裏錯了。總是非常感謝幫助。
也許這樣的事情?我想,你只需要在您的通話lappy上定義一個匿名函數
a <- 5
b <- 1:a
c <- as.data.frame(matrix(rnorm(30, 1), ncol = 5))
out <- lapply(c, function(i) data.frame(i))
因此,您希望將數據幀分成多個數據幀,每個數據幀一個。你確定你要這麼做嗎?當人們想要知道如何遍歷一堆對象時,有很多問題,當他們更好地將所有這些對象包裝到列表或類似的數據結構中時。請注意,數據框基本上只是一列列。
有了這樣的方式....
d <- as.data.frame(matrix(rnorm(30), ncol=5))
for(i in seq_len(ncol(d))) {
name <- names(d)[i]
assign(name, d[[i]])
}
好的謝謝你的評論,我會認爲,仔細地,因爲我認爲你是對的。代碼的作品,但我仍然最終有一個矩陣,有五列。我沒有解釋我需要什麼,我猜。 –
修復了一些故障。此外,這實際上將列保存爲向量,而不是像這樣的數據幀。 –
完美!謝謝你,諾亞。 –
lapply(c,data.frame) – user20650