R语言 尝试创建line_id列时发生变异问题

qkf9rpyu  于 2023-02-17  发布在  其他
关注(0)|答案(2)|浏览(79)

我需要在一个 Dataframe 中创建一个行ID列,以便进行进一步的预处理步骤。昨天之前代码运行良好。但今天我遇到了错误消息:“mutate()中的错误:在论证中:line_id = (function (x, y) ...。由错误引起:!无法转换y以匹配x的类型。”
下面是我的代码- Dataframe 由两个字符列组成:

split_text <- raw_text %>%
  mutate(text = enframe(strsplit(text, split = "\n", ))) %>%
  unnest(cols = c(text)) %>%
  unnest(cols = c(value)) %>%
  rename(text_raw = value) %>%
  select(-name) %>%
  mutate(doc_id = str_remove(doc_id, ".txt")) %>% 
  # removing empty rows + add line_id
  mutate(line_id = row_number())

除了row_number(),我还尝试了rowid_to_column,甚至c(1:1000)- Dataframe 的长度,错误信息保持不变。

wrrgggsh

wrrgggsh1#

尝试使用as.integer()函数将“line_id”列的数据类型显式指定为整数,如下所示:

mutate(line_id = as.integer(row_number()))
neskvpey

neskvpey2#

这段代码可以工作,但并不完全令人满意,因为我必须打断管道:

split_text$line_id <- as.integer(c(1:nrow(split_text)))

相关问题