首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fix.by中的错误(by.x,x):“by”必须将一个或多个列定义为数字、名称或逻辑数据

fix.by中的错误(by.x,x):“by”必须将一个或多个列定义为数字、名称或逻辑数据
EN

Stack Overflow用户
提问于 2020-05-05 11:44:42
回答 1查看 1.5K关注 0票数 1

我有一些文件

代码语言:javascript
复制
file_analysis = read.xlsx(listfiles[1],sheetIndex = 1,header = FALSE)###
#View(file_analysis)
str(file_analysis)
file_comments =  read.csv("C:/Users/adm/Downloads/comments.csv",sep=";")
#View(file_comments)
file_groups = read.xlsx(listfiles[6],sheetIndex = 1,header = FALSE)  ####
#View(file_groups)
file_headeers = read.xlsx(listfiles[7],sheetIndex = 1,header = FALSE)
file_photos = read.csv("C:/Users/adm/Downloads/photos.csv",sep=";")
#View(file_photos)
file_profiles = read.xlsx(listfiles[12],sheetIndex = 1,header = FALSE) ####
#View(file_profiles)
file_profiles3 = read.xlsx(listfiles[13],sheetIndex = 1,header = FALSE)###
#View(file_profiles)
file_statistics = read.csv("C:/Users/adm/Downloads/statistics.csv",sep=";")
#View(file_statistics)
file_videos = read.csv("C:/Users/adm/Downloads/videos.csv",sep=";")
#View(file_videos)

我需要它合并到一个数据集简单的方式

代码语言:javascript
复制
n=merge(file_comments,file_groups,file_photos ,file_profiles,
      file_profiles3,file_statistics,

      file_videos, by ="owner_id")

但它还会让我出错

代码语言:javascript
复制
Error in fix.by (by.x, x): 'by' must define one or more columns as numbers, names or logical data

这个Error in fix.by(by.x, x) : 'by' must specify a uniquely valid columnmergedata <- merge (dataset1, dataset2, by.x="personalid")和这个Merging data - Error in fix.by(by.x, x)帮不了我。我也不知道为什么。

owner_id是数字的

示例

代码语言:javascript
复制
258894746

3389571
3389572
3389573
3389574
118850

怎么了?我需要立刻加入所有文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-05 11:47:37

merge不接受两个以上的数据格式。您应该用Reducepurrr::reduce函数see here递归地应用它。

基R

代码语言:javascript
复制
 Reduce(function(dtf1, dtf2) merge(dtf1, dtf2, by = "owner_id"),
           list(file_comments,file_groups,file_photos ,file_profiles,
                file_profiles3,file_statistics,
                file_videos)
        )

tidyverse语法

代码语言:javascript
复制
library(dplyr)
library(purrr)

list(file_comments,file_groups,file_photos ,file_profiles,
      file_profiles3,file_statistics,
      file_videos) %>% reduce(inner_join, by = "owner_id")

顺便说一句,如果您喜欢左联接而不是内部连接(您打算使用的那个):

merge

  • use

  • all.x = TRUE left_join中添加all.x = TRUE参数,而在tidyverse解决方案

中添加inner_join

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

https://stackoverflow.com/questions/61612338

复制
相关文章

相似问题

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