楼主: lutian08
1926 6

[问答] 如何根据data.frame2来修改data.frame1 [推广有奖]

  • 0关注
  • 8粉丝

已卖:63份资源

副教授

54%

还不是VIP/贵宾

-

威望
0
论坛币
12013 个
通用积分
0.0816
学术水平
29 点
热心指数
33 点
信用等级
23 点
经验
7912 点
帖子
285
精华
0
在线时间
1423 小时
注册时间
2009-11-14
最后登录
2025-12-23

楼主
lutian08 发表于 2013-1-27 19:17:14 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
data.frame1

codevar1var2var3

1

1a1b1c

2

2a2b2c

3

3a3b3c

4

4a4b4c




data.frame2

codevariablevalue

2

var22bb

2

var32cc

3

var13aa

3

var33cc


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:Frame Data Fram FRA RAM 如何

沙发
qoiqpwqr 发表于 2013-1-28 00:16:43
你想要什么样的结果?

藤椅
lutian08 发表于 2013-1-28 09:15:52
qoiqpwqr 发表于 2013-1-28 00:16
你想要什么样的结果?
如data.frame2 中的第一条记录
code variable value
2  var2 2bb
表示data.frame1 中code=2的var2应改为2bb

板凳
flamingstone 发表于 2013-1-30 22:48:22
for(i in 1:nrow(data.frame1)) {
  for(j in 1:nrow(data.frame2)) {
    if(data.frame1$code[i] == data.frame2$code[j]) data.frame1[i,as.character(data.frame2[j,"variable"])] <- data.frame2[j,"value"]
  }
}
已有 1 人评分学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

报纸
jmpamao 发表于 2013-1-31 12:12:21
可能 reshape2包 是你需要的额

require(reshape2)
renda1 <- read.table(text="code variable value
                     2 var2 2bb
                     2 var3 2cc
                     3 var1 3aa
                     3 var3 3cc",header=T,stringsAsFactors=F)
dcast(renda1,code~variable,value.var="value")

结果为:
  code var1 var2 var3
1    2 <NA>  2bb  2cc
2    3  3aa <NA>  3cc
是你需要的吗?
已有 1 人评分学术水平 热心指数 收起 理由
qoiqpwqr + 1 + 1 热心帮助其他会员

总评分: 学术水平 + 1  热心指数 + 1   查看全部评分

地板
lutian08 发表于 2013-1-31 15:18:50
jmpamao 发表于 2013-1-31 12:12
可能 reshape2包 是你需要的额

require(reshape2)
不是的,还需要对另一个数据集进行修改

7
jmpamao 发表于 2013-1-31 15:33:55
哦,不好意思,题看偏了
require(reshape2)
renda <- read.table(text="code var1 var2 var3
                    1 1a 1b 1c
                    2 2a 2b 2c
                    3 3a 3b 3c
                    4 4a 4b 4c",header=T,stringsAsFactors=F)
melt(renda,id="code",measure.vars=c("var1","var2","var3"))


结果:
code variable value
1     1     var1    1a
2     2     var1    2a
3     3     var1    3a
4     4     var1    4a
5     1     var2    1b
6     2     var2    2b
7     3     var2    3b
8     4     var2    4b
9     1     var3    1c
10    2     var3    2c
11    3     var3    3c
12    4     var3    4c

是这个吗?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 21:27