选择数据帧中的下一行,以便在R中插入数据

Dr.*_*nen 3 r data-entry dataframe

我有一个数据框,例如:

   name    age
1 "Danny"  20
2 "Mitt"   35
3 "Dylan"  8
Run Code Online (Sandbox Code Playgroud)

当我获得新条目时,我想更新它df.我已用于nrow(df) + 1下一行:

df[nrow(df) + 1, ] <- c("Tom", 4)
Run Code Online (Sandbox Code Playgroud)

有没有其他方法可以做到这一点?

PKu*_*mar 6

你可以使用rbind:

rbind(df,list("Tom",4))
Run Code Online (Sandbox Code Playgroud)

检查?rbind:

函数cbind和rbind是S3泛型的,具有数据帧的方法.如果至少一个参数是数据帧而其余参数是向量或矩阵,则将使用数据帧方法.可以有其他方法; 特别是,有一个用于时间序列对象.有关如何选择使用方法的信息,请参阅"调度"部分.如果某些参数属于S4类,即isS4(.)为真,则还会寻找S4方法,并且可能会调用包方法中隐藏的cbind/rbind函数,而这些函数又分别构建在cbind2或rbind2上.在这种情况下,遵循deparse.level,类似于默认方法.

在默认方法中,所有向量/矩阵必须是原子(参见向量)或列表.表达是不允许的.语言对象(例如公式和调用)和pairlists将被强制转换为列表:其他对象(如名称和外部指针)将作为元素包含在列表结果中.输入可能具有的任何类都被丢弃(特别是,因子被其内部代码替换).

如果有多个矩阵参数,则它们必须具有相同数量的列(或行),这将是结果的列数(或行数).如果所有参数都是向量,则结果中的列(行)数等于最长向量的长度.较短参数中的值将被回收以实现此长度(如果它们仅按小部分回收,则会发出警告).

  • 当然最简单的解决方案,很好 (2认同)