如何合并数据帧?使用方法错误(“tbl”U vars):没有适用于';tbl#u vars';适用于“类”的对象;列表“;

如何合并数据帧?使用方法错误(“tbl”U vars):没有适用于';tbl#u vars';适用于“类”的对象;列表“;,r,dataframe,dplyr,R,Dataframe,Dplyr,我试图合并两个数据帧,一个包含日期、作者、论文和ID等变量,另一个包含文本及其ID。 我补充说,因为它可能有一些重要性,包含文本的数据帧是通过将Vcorpus转换为具有以下代码的数据帧获得的: factivadf <- data.frame(text=unlist(sapply(corpus, `[`, "content")), stringsAsFactors=F) factivaclean <- full_join(corpusVars, factiva, by = "doc_

我试图合并两个数据帧,一个包含日期、作者、论文和ID等变量,另一个包含文本及其ID。 我补充说,因为它可能有一些重要性,包含文本的数据帧是通过将Vcorpus转换为具有以下代码的数据帧获得的:

factivadf <- data.frame(text=unlist(sapply(corpus, `[`, "content")), stringsAsFactors=F)
factivaclean <- full_join(corpusVars, factiva, by = "doc_id")
我的两个原始数据帧是常规数据帧,起初我认为应用
tibble()
需要错误,所以我将函数应用于它们,但我一直得到相同的错误

这是我的第一个数据帧corpusVars头部的dput:

structure(list(corpusVars = structure(list(doc_id = c("LEPARI0020120304e833000v5", 
"HUMAN00020120301e8320001e", "LACRX00020120228e82s00017", "HUMAN00020120223e82o0001h", 
"HUMAN00020120223e82o0001g", "HUMAN00020120223e82o0000n"), Origine = c("Le Parisien-Aujourd'hui en France", 
"L'Humanité", "La Croix", "L'Humanité", "L'Humanité", "L'Humanité"
), Date = structure(c(15402, 15401, 15398, 15394, 15394, 15394
), class = "Date"), Auteur = c(NA, NA, NA, "Entretien réalisé par <U+2028>Fara C", 
"V. H.", NA)), .internal.selfref = <pointer: 0x0000024403b11ef0>, row.names = c(NA, 
6L), class = c("data.table", "data.frame"))), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))
structure(list(doc_id = structure(c(898L, 434L, 702L, 433L, 432L, 
431L), .Label = c("ECHOS00020110523e75n0004j", "ECHOS00020110525e75p0000o", 
"ECHOS00020110530e75u00019", "ECHOS00020110603e76300003", "ECHOS00020110615e76f0003l", 
"ECHOS00020110621e76l00021"), class = "factor"), 
    Origine = structure(c(5L, 1L, 2L, 1L, 1L, 1L), .Label = c("L'Humanité", 
    "La Croix", "La Tribune", "Le Figaro", "Le Parisien-Aujourd'hui en France", 
    "Les Echos"), class = "factor"), Date = structure(c(30L, 
    16L, 368L, 313L, 313L, 313L), .Label = c("01/02/2012", "01/02/2019", 
    "01/03/2019", "01/04/2019", "01/06/2011", "01/07/2011"), class = "factor"), 
    Auteur = structure(c(NA, NA, NA, 150L, 463L, NA), .Label = c("A.DA.", 
    "A.F.", "Adam Arroudj; 0", "Adèle Smith; adelesmith100@gmail.com", 
    "ADRIEN GOMBEAUD", "Adrien Jaulmes; ajaulmes@lefigaro.fr"), class = "factor")), row.names = c(NA, 
6L), class = "data.frame")
使用read.csv2打开时,以下是小体头部dput的子集:

structure(list(corpusVars = structure(list(doc_id = c("LEPARI0020120304e833000v5", 
"HUMAN00020120301e8320001e", "LACRX00020120228e82s00017", "HUMAN00020120223e82o0001h", 
"HUMAN00020120223e82o0001g", "HUMAN00020120223e82o0000n"), Origine = c("Le Parisien-Aujourd'hui en France", 
"L'Humanité", "La Croix", "L'Humanité", "L'Humanité", "L'Humanité"
), Date = structure(c(15402, 15401, 15398, 15394, 15394, 15394
), class = "Date"), Auteur = c(NA, NA, NA, "Entretien réalisé par <U+2028>Fara C", 
"V. H.", NA)), .internal.selfref = <pointer: 0x0000024403b11ef0>, row.names = c(NA, 
6L), class = c("data.table", "data.frame"))), row.names = c(NA, 
-6L), class = c("tbl_df", "tbl", "data.frame"))
structure(list(doc_id = structure(c(898L, 434L, 702L, 433L, 432L, 
431L), .Label = c("ECHOS00020110523e75n0004j", "ECHOS00020110525e75p0000o", 
"ECHOS00020110530e75u00019", "ECHOS00020110603e76300003", "ECHOS00020110615e76f0003l", 
"ECHOS00020110621e76l00021"), class = "factor"), 
    Origine = structure(c(5L, 1L, 2L, 1L, 1L, 1L), .Label = c("L'Humanité", 
    "La Croix", "La Tribune", "Le Figaro", "Le Parisien-Aujourd'hui en France", 
    "Les Echos"), class = "factor"), Date = structure(c(30L, 
    16L, 368L, 313L, 313L, 313L), .Label = c("01/02/2012", "01/02/2019", 
    "01/03/2019", "01/04/2019", "01/06/2011", "01/07/2011"), class = "factor"), 
    Auteur = structure(c(NA, NA, NA, 150L, 463L, NA), .Label = c("A.DA.", 
    "A.F.", "Adam Arroudj; 0", "Adèle Smith; adelesmith100@gmail.com", 
    "ADRIEN GOMBEAUD", "Adrien Jaulmes; ajaulmes@lefigaro.fr"), class = "factor")), row.names = c(NA, 
6L), class = "data.frame")

您的阅读功能似乎有问题

输出不是一个普通的dataframe对象,而是某种只包含dataframe对象的列表

事实上,这一行似乎很有效,并提供了一个适当的合并数据帧:

full_join(corpusVars$corpusVars, factivadf$factivadf, by = "doc_id")
值得注意的是,正如Chris所说,
.internal.selfref=
不应该包括在内,我必须将其从您的
dput
输出中删除,这样示例才能工作。这似乎确实与fread有关:

您是否尝试了
merge
?我想数据中不应该包含这个
.internal.selfref=,
?是的,但我不知道它为什么存在以及如何删除it@ChrisRuehlemann是的,我有一张5张桌子。在0个变量中,“表中没有可用数据”。我想这是因为
.internal.selfref=
,但我不知道为什么会出现这种情况,因为我不知道您有什么数据,如果我是您,我会做的是将整个.csv文件复制并粘贴到某个.txt编辑器中,将其保存为.txt,然后使用
read.table
读取它;此外,您可能还需要尝试将参数调整为
read.table
,查看
?read.table
full_join(corpusVars$corpusVars, factivadf$factivadf, by = "doc_id")