R 是否有一种方法可以使用变量的聚集函数创建面板数据集,而不为每个变量创建单独的数据集?
我正在尝试创建一个跨年份的多变量面板数据集。我的数据在RStudio中的格式如下:R 是否有一种方法可以使用变量的聚集函数创建面板数据集,而不为每个变量创建单独的数据集?,r,tidyr,R,Tidyr,我正在尝试创建一个跨年份的多变量面板数据集。我的数据在RStudio中的格式如下: 2012 2012 2012 2012 2013 2013 2013 ..... Name Var1 Var2 Var3......Var10 Var1 Var2...Var10..... X 1 4 20 ....... Y 2 7 25 ...... Z 3 9 26 ...... and so on for each va
2012 2012 2012 2012 2013 2013 2013 .....
Name Var1 Var2 Var3......Var10 Var1 Var2...Var10.....
X 1 4 20 .......
Y 2 7 25 ......
Z 3 9 26 ...... and so on for each variable across years
我想为这些对象创建一个面板数据集
Name Year Var1 Var2 Var3....Var10
X 2012
Y 2012
Z 2012
X 2013
Y 2013
Z 2013
我已通过以下步骤创建了面板:
Name Year Var1
X 2012.Var1 1
Y 2012.Var2 2
X 2013.Var1 and so on
colnames(df) <- paste(colnames(df), df[1, ])
虽然代码用于创建数据帧,但是,当变量数量很大且跨越数年时,它非常繁琐和耗时。我正在寻找一种更简单的方法来创建相同的数据帧?我没有使用
聚集
的解决方案,但您可以通过使用合并.stack
函数从拆分StackShape
包中一次性实现这一点
我将添加一个简单的示例:
库(splitstackshape)
种子集(123)
dt1我没有使用gather
的解决方案,但是您可以通过使用splitstackshape
包中的merge.stack
函数一次性实现这一点
我将添加一个简单的示例:
创建一个示例数据集。在本例中,我创建的变量名以“”作为分隔符,年份显示在“”之后李>
库(splitstackshape)
种子集(123)
dt1见。仅链接的答案没有多大帮助,因为它们没有回答问题,只需指出可能的建议运行上述代码时出错-if中的错误(ncol(x)=1L){:参数长度为零请参见。仅链接的答案没有多大帮助,因为它们没有回答问题,只需指向可能的建议运行上述代码时出错-if中的错误(ncol(x)=1L){:参数的长度为零这看起来像是一个聚集
/排列
组合,但如果没有一个,很难准确地提供帮助这看起来像是一个聚集
/排列
组合,但是如果没有一个
Var1 <- df %>% gather(year, Var1, `2012.Var1`,`2012.Var2`and so on)
Creating a Dataset for Var1
- did the same for all the variables
new_data = cbind(Var1,Var2, ..., Var10) # Combining Different Datasets
names(new_data)