Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中列出数据帧的不同对象长度_R_List_Dataframe - Fatal编程技术网

在R中列出数据帧的不同对象长度

在R中列出数据帧的不同对象长度,r,list,dataframe,R,List,Dataframe,我有一个10列的列表,每个元素有2列。一个是年份(2001-2018),另一个是观察。因为第一个和第二个物体缺了几年(因此长度只有14或16年而不是18年),其他的都是完整的(长度为18年) 我的名单: list <- (A, B, C, D) A = data.frame (Year = c(2001, 2003), Observ = c(1,3) B = data.frame (Year = c(2002, 2003, 2018), Observ = c(2,8,3) C = dat

我有一个10列的列表,每个元素有2列。一个是年份(2001-2018),另一个是观察。因为第一个和第二个物体缺了几年(因此长度只有14或16年而不是18年),其他的都是完整的(长度为18年)

我的名单:

list <- (A, B, C, D)

A = data.frame (Year = c(2001, 2003), Observ = c(1,3)
B = data.frame (Year = c(2002, 2003, 2018), Observ = c(2,8,3)
C = data.frame (Year = c(2001, 2002, 2003, ..., 2018), Observ = c(4,3,2,5)
D = data.frame (Year = c(2001, 2002, 2003, ..., 2018), Observ = c(17,1, 11, 2)


一种方法是
合并
数据帧列表。如果您的列表被称为
list\u df
,您可以执行以下操作:

Reduce(function(x, y) merge(x, y, by = 'Year', all = TRUE), list_df)

#  Year Obser1 Obser2
#1 2000      1      1
#2 2001      2      2
#3 2002      3      3
#4 2003      4     NA

tidyverse
上述替代方案

library(dplyr)
library(purrr)

list_df %>% reduce(full_join, by = 'Year')
数据

在这个小样本上测试:

df1 <- data.frame(Year = 2000:2003, Obser1 = 1:4)
df2 <- data.frame(Year = 2000:2002, Obser2 = 1:3)
list_df <- list(df1, df2)

df1帮助我们帮助您:提供一个。特别是,请将您的问题包括R命令的输出
dput(mydata)
,其中您将
mydata
替换为您在这里谈论的对象的名称。您可以查阅更多详细信息。x和y是什么?
x
y
Reduce
中匿名函数的参数。
df1 <- data.frame(Year = 2000:2003, Obser1 = 1:4)
df2 <- data.frame(Year = 2000:2002, Obser2 = 1:3)
list_df <- list(df1, df2)