如何为R语言dataframe添加行号列并处理空dataframe情况
解决DataFrame添加行索引列的空数据兼容问题
基础高效的base R方案:用
seq_len()替代seq(1:nrow(df)),这个函数会根据输入的长度生成对应序列,当DataFrame为空时(nrow(df)=0),返回空的整数向量,和空DataFrame的行数匹配,不会报错:df$row_num <- seq_len(nrow(df))利用默认行名的方案:如果你的DataFrame行名是默认的连续数字(1、2、3...),可以直接把行名转成整数作为行索引:
df$row_num <- as.integer(rownames(df))注意:如果行名被手动修改过,这个方法就不适用了。
更高效的dplyr替代方案:既然
row_number()速度慢,换成seq_len(n())在mutate里使用,n()会返回当前DataFrame的总行数,生成序列的效率更高,同时兼容空数据:library(dplyr) df <- df %>% mutate(row_num = seq_len(n()))
内容的提问来源于stack exchange,提问作者locket
相关产品推荐
相关产品推荐

