2017-08-29 74 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

感谢您的答复,但我真的需要遍历数据框,并创建一个新的应用程序或一个新的包 –

相关问题