R语言报错:arguments imply differing number of rows:163153,0求解
问题解决:R语言主题建模导入数据时行数不匹配报错
报错核心原因
这个报错本质是:row.names(review)对应163153行数据,但review$English.title返回的是长度为0的向量——也就是说你代码里引用的English.title列,根本不存在于读进来的review数据框中。
排查与解决步骤
第一步:确认数据实际列名
先运行以下代码,查看读进来的数据结构和列名:# 输出所有列名 names(review) # 查看数据前5行内容 head(review, 5)你大概率会发现,实际列名和你写的
English.title不一致:比如Excel里的列名是English Title(带空格)、english_title(全小写),或者导出csv时列名被自动修改了。第二步:修正列名引用
如果列名带空格(比如English Title),要用反引号包裹列名来引用:df_title <- data.frame(doc_id = row.names(review), text = review$`English Title`, stringsAsFactors = F)如果是其他列名形式,直接替换成对应名称即可。
第三步:检查csv文件格式
如果列名没问题但仍读不到数据,检查Excel导出的csv文件:- 确认是逗号分隔的标准csv,如果是制表符分隔的文件,要在
read.csv里指定分隔符:read.csv(txtpath, sep="\t", stringsAsFactors=F) - 确认文件第一行是列名,如果没有列名,要添加
header=FALSE参数并手动命名:review <- read.csv(txtpath, header=FALSE, stringsAsFactors=F) # 手动给列命名,根据实际数据调整 colnames(review) <- c("ID", "English.title")
- 确认是逗号分隔的标准csv,如果是制表符分隔的文件,要在
修正后示例代码
library(tm) library(SnowballC) txtpath <- file.path("你的文件路径") # 读取数据 review <- read.csv(txtpath, stringsAsFactors = F) # 先确认列名 cat("数据列名:\n") print(names(review)) # 使用正确的列名创建df_title df_title <- data.frame(doc_id = row.names(review), text = review$`English Title`, # 替换为你实际的列名 stringsAsFactors = F)
内容的提问来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

