我有一个不同长度的数据帧列表(df),按年份索引,数据的代理如下所示:
df
$df1
X..i..
1999 10
1998 13
1997 14
$df2
X..i..
1999 20
1998 11
$df3
X..i..
1999 17
1998 8
1997 9
1996 19
df_all
Index df1 df2 df3
1999 10 20 17
1998 13 11 8
1997 14 n/a 9
1996 n/a n/a 19
smalldflist <- lapply(bai_df, function(i) head(i, 10))
dput(smalldflist)
如果您只在全局环境中拥有所需的数据,您可以尝试以下操作。首先,您收集所有数据帧中的唯一年份,并创建一个主数据帧,其中只包括唯一年份。然后,您将所有数据帧放在一个列表中,并将每个数据帧与master
合并。因为您在temp
中有主数据帧,所以您将其删除。最后,您绑定所有数据帧,并将长格式更改为宽格式。
library(tidyverse)
# Create a data frame with all unique years
master <- data.frame(year = mget(ls()) %>%
sapply(`[`, 1) %>%
as_vector %>%
unique)
# Merge each data frame with the master df
temp <- mget(ls()) %>%
lapply(function(x){full_join(x, master, by = "year")})
# Remove the master df in the list
temp[["master"]] <- NULL
# Bind all dfs and make it wide.
bind_rows(temp, .id = "data") %>%
spread(key = data, value = value)
# year df1 df2 df3
#1 1996 NA NA 19
#2 1997 14 NA 9
#3 1998 13 11 8
#4 1999 10 20 17
数据
df1 <- data.frame(year = c(1999, 1998, 1997),
value = c(10, 13, 14))
df2 <- data.frame(year = c(1999, 1998),
value = c(20, 11))
df3 <- data.frame(year = c(1999, 1998, 1997, 1996),
value = c(17, 8, 9, 19))
我有两个不同长度的数据帧。我想用CAP*货币和Go*货币与df_cur的乘法来改变数据帧df中的列。这应该在国家和年份必须分别对两个数据家族相同的条件下完成。更具体地说, #df# #df_cur# 所以,我想像这样变换df: #df# 我回顾了许多将两个数据帧大小不同的列相乘得到的答案,但没有任何结果。 我的代码示例: 非常感谢您的宝贵时间!
我有两个具有经度和纬度值的数据帧,我想从数据帧#2中提取值(例如数据帧#2的第三列),这些值与数据帧1的列匹配...例如,数据帧1有两列(、),数据帧2有三列(、和一些值)...我想在数据帧1中添加第三列,其中的值对应于两个数据帧中两列完全匹配的值,类似于和...在、不匹配的对中,我希望添加,以便第三列(我要添加到数据。帧1)的长度为=。我尝试了merge函数,但在将的两列与的列进行匹配时遇到了困
输入的dput() 结构(列表(Varname=structure(1:6,.标签=c(“A”,“B”,“c”,“D”,“E”,“F”),类=“因子”),成分=结构(c(3L,1L,1L,4L,2L,1L),标签=c(“”,“A,c”,“B”,“c”),类=“因子”),名字=结构(c(5L,3L,2L,4L,6L),标签=c(“”,“鲍勃”,“凯茜”,“迪克,南希”,“杰克,布鲁斯”,“曼迪”),
假设我有以下数据帧: 我想计算每个的不同值的数量。它应产生以下结果: 我该怎么做?
本文向大家介绍如何通过重复行数来增加R数据帧的长度?,包括了如何通过重复行数来增加R数据帧的长度?的使用技巧和注意事项,需要的朋友参考一下 如果我们坚信新的数据收集将产生相同类型的数据,则我们可能希望在R中将数据帧扩展为更多行。虽然不建议这样做,因为由于此过程,我们在数据中失去了公正性,但这样做是为了节省时间和金钱,而这些钱和金钱将用于投资新的数据收集。在R中,我们可以将rep与seq_len函数
我试图在R中合并2个数据帧,但我有两个不同的列,带有不同类型的ID变量。有时一行会有其中一列的值,而另一列却没有。我想同时考虑它们,这样,如果一个帧缺少一个列的值,那么将使用另一个列。 我想合并这两个数据帧,得到2行: null 编辑:理想情况下,输出如下所示: 第1行匹配,因为列“first”在两个数据帧中具有相同的值,并且它填充了来自DF2的“second”的值 第2行匹配,因为列“secon