为R语言tbl_df类dataframe新增空列时出现Non Numeric错误如何解决
错误原因排查
- 代码逻辑与需求不匹配:你当前的写法
sapply(1:104, "+", df1[[1]])是为了将1-104分别与df1的第一列做算术加法,和你新增空列的目标完全不符。 - 类型不兼容触发报错:你的df1第一列
ROW_ID是字符类型,无法参与加法运算,直接抛出non-numeric argument to binary operator的类型错误。
正确实现代码
如果需要新增104个空列,可直接使用赋值NA的写法,天然兼容tibble(tbl_df)类型的结构:
# 基础版:新增104个填充NA的空列,列名自动命名为new_col_1到new_col_104 df1[paste0("new_col_", 1:104)] <- NA
如果需要指定空列的类型,可调整赋值逻辑:
# 例如新增104个字符型空列 df1[paste0("new_col_", 1:104)] <- sapply(1:104, function(x) NA_character_) # 例如新增104个integer64类型空列 library(bit64) df1[paste0("new_col_", 1:104)] <- sapply(1:104, function(x) as.integer64(NA)) # 例如新增104个Date类型空列 df1[paste0("new_col_", 1:104)] <- sapply(1:104, function(x) as.Date(NA))
内容的提问来源于stack exchange,提问作者ks ramana
相关产品推荐
相关产品推荐

