首页 > 解决方案 > 使用单独的函数后,我无法使用新列创建新数据框

问题描述

我使用单独的函数将一列分数拆分为 4。例如,“66-67-69-67”为“66 67 69 67”,对应的名称为“R1”、“R2”、“R3”、 R4。我运行这条线,它准确地显示了我想要的。但在那之后,当我想要一个包含这些列的新数据框时,会出现错误“找不到对象 R1”。

df <- data.frame(rank,player,score,total,par)
separate(df, score, c('R1', 'R2','R3','R4'), sep="\\-")
rank                        player  R1   R2   R3   R4 total par
1                      So Yeon Ryu  64   67   69    67   267 -21
2                  Caroline Masson  67   66   68    68   269 -19
3                         Lydia Ko  69   67   67    67   270 -18

但是当我使用下面的代码创建新的数据框时,我得到了错误

df.rd <- data.frame(rank,player,R1, R2, R3, R4, total)
head(df)
Error in data.frame(rank, player, R1, R2, R3, R4, total) : 
  object 'R1' not found

标签: r

解决方案


正如@akrun 指出的那样,排名、玩家和总数是独立的对象,但 R1 等。不是。必须从父数据框调用它们。尝试这个:

df <- data.frame(rank,player,score,total,par)
ab <- separate(df, score, c('R1', 'R2','R3','R4'), sep="\\-")

现在新的数据框:

df.rd <- data.frame(rank,player, ab$R1, ab$R2, ab$R3, ab$R4, total)
head(df)

推荐阅读