我有一个数据集(在数据框中)。我正在使用 apply 向数据集中添加一个新列,其中新列的行使用该行中其他列的元素执行一个函数。Apply 有效,但在将函数应用到每一行之后,它会继续超出范围,只是一遍又一遍地应用值。
这是我开始的数据:
Abbreviation Name X Y Z A B C
JM Jim 3 4 5 6 7 8
JS Jess 5 6 7 8 9 10
使用以下命令,我得到以下结果: 命令:
df_new$Test <- apply(df_new,1, function(row) (df_new[,8]/df_new[,6])/(df_new[,5]/df_new[,3]))
返回的数据(来自视图(df_new))
Abbreviation Name X Y Z A B C Test
JM Jim 3 4 5 6 7 8 .8
JS Jess 5 6 7 8 9 10 .89
.8
.89
.8
.89
此外,当我使用以下命令将此数据写入 csv 时,我得到以下输出: 命令:
write.csv(df_new,file="Df_new.csv", row.names=FALSE)
Abbreviation Name X Y Z A B C Test Test.1 Test.2 Test.3
JM Jim 3 4 5 6 7 8 .8 .8 .8 .8
JS Jess 5 6 7 8 9 10 .89 .89 .89 .89
理想情况下,从上面,我只想要 df_new[1:2,1:9]; 但是,即使尝试创建仅保留该信息的对象,仍然会导致额外的行(在 View(df_new) 中)或额外的列(写入 .csv 时)。