首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多个记录转换为R中的单个记录

将多个记录转换为R中的单个记录
EN

Stack Overflow用户
提问于 2014-04-23 16:52:09
回答 1查看 106关注 0票数 3

所以,我知道你们中的很多人会认为这个问题被问了很多次,但我认为没有。本质上,我希望完全平平我的数据,这意味着我希望每个人都有一个单一的记录。下面是我的数据的一个可复制的示例:

代码语言:javascript
复制
   id      BusinessUnit var1 var2 var3
1   1 Risk & Compliance    8    7    7
2   1       Investments    7    8    7
3   1      Credit Cards    8    9    7
4   2       Investments    9   10    8
5   2      Credit Cards    9   10    8
6   3 Risk & Compliance    9   10    9
7   3      Credit Cards   10    9   10
8   3       Call Center    6    9   10
9   4       Investments    7    6   10
10  4      Call Centers    7    5    9
11  5 Risk & Compliance   10    7    9
12  6 Risk & Compliance    6    8    9
13  6      Credit Cards    5   10    6

最后我想说的是:

代码语言:javascript
复制
  id     BusinessUnit1 var1_1 var2_1 var3_1 BusinessUnit2 var1_2 var2_2 var3_2
1  1 Risk & Compliance      8      7      7   Investments      7      8      7
2  2       Investments      9     10      8  Credit Cards      9     10      8
  BusinessUnit3 var1_3 var2_3 var3_3
1  Credit Cards      8      9      7
2          <NA>     NA     NA     NA

我尝试使用reshape2包的cast()函数,但是它希望我聚合我不想做的数据。此外,我不想为每个业务单元单独记录,因为这只是让我回到我已经拥有的。是否有不同的方法可以避免使用for循环?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-23 17:07:49

对于reshape来说,这是一项比dcast更好的工作。只需先添加一个“时间”变量:

代码语言:javascript
复制
mydf$time <- ave(rep(1, nrow(mydf)), mydf$id, FUN = seq_along)
reshape(mydf, idvar="id", direction = "wide")
#    id    BusinessUnit.1 var1.1 var2.1 var3.1 BusinessUnit.2 var1.2 var2.2 var3.2
# 1   1 Risk & Compliance      8      7      7    Investments      7      8      7
# 4   2       Investments      9     10      8   Credit Cards      9     10      8
# 6   3 Risk & Compliance      9     10      9   Credit Cards     10      9     10
# 9   4       Investments      7      6     10   Call Centers      7      5      9
# 11  5 Risk & Compliance     10      7      9           <NA>     NA     NA     NA
# 12  6 Risk & Compliance      6      8      9   Credit Cards      5     10      6
#    BusinessUnit.3 var1.3 var2.3 var3.3
# 1    Credit Cards      8      9      7
# 4            <NA>     NA     NA     NA
# 6     Call Center      6      9     10
# 9            <NA>     NA     NA     NA
# 11           <NA>     NA     NA     NA
# 12           <NA>     NA     NA     NA
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23250663

复制
相关文章

相似问题

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