楼主: seanfang1992
5168 7

[统计软件] R语言如何实现excel中vlookup的功能 [推广有奖]

  • 0关注
  • 0粉丝

高中生

95%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
185 点
帖子
18
精华
0
在线时间
56 小时
注册时间
2015-7-8
最后登录
2018-7-12

楼主
seanfang1992 发表于 2016-8-30 12:54:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
data2.xlsx (11.69 KB) data1.xlsx (12.6 KB)
本人现在有一些膳食数据,想利用R实现excel中的Vlookup功能,
想根据data1code及data2中的foodname实现匹配计算对象每种食物的能量等物质的摄入情况,
其中data1中的数据是每100g食物中含有的物质。

我之前的做法比较笨,是通过将两个数据合并后,生成新变量来计算的,但是要计算18次,,,
想问问各位大神是否有较简单的方法。

hebing <- merge(new,key,by="code")
hebing2 <- hebing[order(hebing$id),]View(hebing)hebing <- merge(new,key,by="code")
hebing2$water<- hebing2$water*hebing2$amount
请各位大神指教。
二维码

扫码加我 拉你入群

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

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

关键词:vlookup lookup Vlook EXCEL exce R语言

沙发
houyunhuang 发表于 2016-8-30 13:11:05
我是没太明白你的意思

藤椅
felixzhao123 发表于 2016-8-30 14:30:12
假设你的数据data1和data2已经在R中
  1. require(dplyr)
  2. newdata<-data1%>%
  3.   left_join(data2,by=c("foodname"="code"))
复制代码
已有 1 人评分论坛币 学术水平 热心指数 信用等级 收起 理由
admin_kefu + 30 + 2 + 2 + 2 热心帮助其他会员

总评分: 论坛币 + 30  学术水平 + 2  热心指数 + 2  信用等级 + 2   查看全部评分

板凳
seanfang1992 发表于 2016-8-31 14:34:13
felixzhao123 发表于 2016-8-30 14:30
假设你的数据data1和data2已经在R中
谢谢您,我是初学,dplyr包也只是初步了解,按您的代码运行了,但得到error提示Error: 'code' column not found in lhs, cannot join。捉急啊。。。。

报纸
seanfang1992 发表于 2016-8-31 14:35:05
houyunhuang 发表于 2016-8-30 13:11
我是没太明白你的意思
谢谢您!简单说,就是我想利用code和amount计算每个ID每种食物各个营养成分摄入量

地板
houyunhuang 发表于 2016-8-31 17:09:25
seanfang1992 发表于 2016-8-31 14:35
谢谢您!简单说,就是我想利用code和amount计算每个ID每种食物各个营养成分摄入量
  1. library(readxl)
  2. data1 <- read_excel('data1.xlsx',sheet = 2)
  3. data2 <- read_excel('data2.xlsx',sheet = 1)
  4. library(dplyr)
  5. newdata<-data1 %>%
  6.     left_join(data2,by=c('code'='foodname'))
复制代码
我不知道你的表格1的数据是不是只是每单位摄入的营养含量,那样还需要进行进一步计算。都可以在dplyr包中搞定

7
seanfang1992 发表于 2016-8-31 18:34:30
houyunhuang 发表于 2016-8-31 17:09
我不知道你的表格1的数据是不是只是每单位摄入的营养含量,那样还需要进行进一步计算。都可以在dplyr包中 ...
data1中的数据是每单位的数据,另我采用dplyr包时总是提示error:‘code’ column not found in Ihs,cnnot join;我目前采用的方法是利用merge生成新变量后,再计算获得新的变量。

8
houyunhuang 发表于 2016-9-3 18:45:46
seanfang1992 发表于 2016-8-31 18:34
data1中的数据是每单位的数据,另我采用dplyr包时总是提示error:‘code’ column not found in Ihs,cnno ...
应该是你读进来的数据问题,你放在论坛的data1是sheet2,而你自己的不一定是sheet2

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

本版微信群
jg-xs1
拉您进交流群
GMT+8, 2026-1-2 00:44