簡體   English   中英

如何從單個數據框的列自動創建多個數據框?

[英]How to automatically create multiple dataframes from columns of a single dataframe?

我的數據框“測試”如下所示:

Date                1          2          3
01.01.1985         NA         NA         NA
09.01.1985         NA         NA         NA
17.01.1985 0.05173014 0.04578678 0.04326039
25.01.1985         NA         NA         NA
02.02.1985         NA         NA         NA
10.02.1985 0.05835957 0.05499137 0.05497832

對於從1到n的每一列(日期列除外),我想創建1到n(在本例中為3)數據幀,每個數據幀都包含日期列和從1到n的另一列。 例:

        Date          3
1 01.01.1985         NA
2 09.01.1985         NA
3 17.01.1985 0.04326039
4 25.01.1985         NA
5 02.02.1985         NA
6 10.02.1985 0.05497832

理想情況下,每個新數據幀都應以其編號“ n”或類似“ new_frame_n”的名稱命名。 由於我的整個數據框包含一千多行(日期)和大約50列(以1到n命名),我想找出一種自動執行此操作的方法。 我已經以多種方式嘗試過,到目前為止,這是我所擁有的:

i <- 2 #start at second column
m <- ncol(test) # assign this to length of loop
m

for (i in 2:m) {
    new_frame_[[i-1]] <-  subset(test, select = c(Date, i))
    i <- i+1
}

我遇到過這個問題: 如何使用循環從巨大的數據幀中創建多個數據幀? [關閉] ,試圖將其應用於我的數據,但是它沒有用,所以我認為循環會起作用。 我對r很新。 非常感謝!

嘗試這個:

df <- read.table(textConnection("
Date                1          2          3
01.01.1985         NA         NA         NA
09.01.1985         NA         NA         NA
17.01.1985 0.05173014 0.04578678 0.04326039
25.01.1985         NA         NA         NA
02.02.1985         NA         NA         NA
10.02.1985 0.05835957 0.05499137 0.05497832" ) ,header=TRUE)

for ( i in 1:ncol(df[-1])) {
 assign(paste0("new_frame", i), cbind(df[1], df[-1][i])) 
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM