首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R当数据集源被更改时不产生相同的结果。

R当数据集源被更改时不产生相同的结果。
EN

Stack Overflow用户
提问于 2018-04-16 13:13:19
回答 1查看 62关注 0票数 1

如果我手动创建了2个DFs,那么代码将完成它想要做的事情:

代码语言:javascript
运行
复制
`df1 <- structure(list(CompanyName = c("Google", "Tesco")), .Names = "CompanyName", class = "data.frame", row.names = c(NA, -2L))

df2 <- structure(list(CompanyVariationsNames = c("google plc", "tesco bank","tesco insurance", "google finance", "google play")), .Names =  "CompanyVariationsNames", class = "data.frame", row.names = c(NA, -5L))-5L))
 `

test <- df2 %>% rowwise() %>% mutate(CompanyName = as.character(Filter(length, lapply(df1$CompanyName, function(x) x[grepl(x, CompanyVariationsNames, ignore.case=T)])))) %>% group_by(CompanyName) %>% summarise(Variation = paste(CompanyVariationsNames, collapse=",")) %>% cSplit("Variation", ",")

这将产生以下结果:

CompanyName Variation_1 Variation_2 Variation_3 1: Google google plc google finance google play 2: Tesco tesco bank tesco insurance NA

但是..。如果导入数据集(使用read.csv),则会得到以下错误Error in mutate_impl(.data, dots) : Column CompanyName must be length 1 (the group size), not 0。我的数据集相当大,所以df1有1000行,df2有54k行。当数据集是手动创建的,而当数据被导入时,代码工作是否有特定的原因?

DF1包含公司名称,DF2包含这些公司的不同名称。

救命啊!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-16 13:49:41

从CSV导入可能很棘手。查看默认分隔符(逗号)是否特别适用于您的文件。如果没有,可以通过将sep参数设置为一个工作的字符来更改它。(例如:由于我们的地方会议,read.csv(file_path, sep = ";")在我国是一个常见的问题。

实际上,如果您的标准是分号,read.csv2(file_path)就足够了。

而且(为了避免进一步的麻烦) csv使用十进制值的列是很常见的,因为这里我们使用逗号作为小数分隔符而不是点。因此,在其他列中,这是否也是您的文件中的一个问题,这是值得检查的。

如果是这样,则可以通过设置read.csv (例如:read.csv(file_path, sep = ";", dec = ","))在dec = ","read.csv2中设置适当的参数。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49858239

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档