2017-08-29 39 views
0

我有一個CSV文件這樣遍歷數據幀,並追加到一個新的空單

 a b  c  
    1 2 'some string1' 
    1 54 'some string2' 
    2 87 'some string3' 
    3 18 'some string4' 

我需要遍歷每個數據和複製數據彼此的數據幀。所以我需要這樣的東西

df <- read.csv("example.csv", sep='\t', header=TRUE) 
new_df <- data.frame(a=NA, b=NA, c=NA) 
for (row in df){ 
#some calculation here then 
append(row to new_df) 
} 
save the new_df to a new csv. 

我該怎麼做?我找到了很多解決方案,但都讓我感到困惑。

+2

'DF = rbind(DF,the.new.row.to.append)' – Onyambu

+0

我認爲OP想追加到一個新的空白數據框,而不是原始數據框。 – neilfws

回答

0

我會在這裏調用#some計算然後some_calculation。然後,您可以使用以下方法構建舊數據行的新數據框: new_df <- apply(df, 1, some_calculation) 然後使用rbind將其附加到舊數據框,如前所述。

1

循環和追加是創建新數據框的非常低效的方法。大多數R程序員會建議您使用apply系列的函數或者更新的程序包(如dplyrpurrr)來轉換原始數據幀。

這將有助於瞭解示例代碼中的「某些計算」。但是,讓我們說,例如,您通過6. 「dplyr方式」 想多列a可能是:

library(dplyr) 
new_df <- df %>% 
    mutate(a = a * 6) 
+0

感謝您的答覆,但我真的需要遍歷數據框,並創建一個新的應用程序或一個新的包 –