全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
4247 5
2015-10-22
R初学者。
目前有以下结构的数据:

IDscore1score2Gender

101

11.35321

0.2male

102

12.58654

0.6male

103

19.7938

0.9female

104

12.01352

0.4female

105

11.97081

0.4female

106

17.3748

0.7female

107

14.24884

0.3female

108

18.47972

0.8male

109

18.74792

0.8male

110

18.90146

0.7male
想做当gender 为male时, summary (score1)
或者是当gender为male时,score1对score2的回归

可不可以用if语句
如if(Gender==“male”)summary(score1)
我已经试过,在R里面因为Gender向量的长度大于1,我理解应该是10,因为有10行数据,所以R会报错。
那么要如何解决这个问题,并实现我想完成的分析》
谢谢!!


二维码

扫码加我 拉你入群

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

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

全部回复
2015-10-22 01:05:25
也就是stata 中的
summ(score1) if Gender==“male”

这个等价的筛选条件在R 中要如何实现?
我知道这个应该是非常低级的问题,可是纠结了几个小时也无解。求大神帮助!
二维码

扫码加我 拉你入群

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

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

2015-10-22 03:17:01
自己来回答一下吧,折腾到天快亮,想了个折中的办法来解决这个问题,就是用subset,逐个定义你想要的条件,生成一个新的子数据框,最后直接在新定义的自数据框里面做分析就是了。供迫在眉睫需要解决这个问题的初学难友们参考。我自己用google检索问题解决方案的能力并不差,但这个问题确实是没找到合适的解决方法,也可能是才接触R两三天的缘故吧。
这问题和办法都比较笨,但我也不知道还有没有更好的办法,仍期待各位大牛的高级解答!
二维码

扫码加我 拉你入群

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

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

2015-10-22 13:42:23
subset 可以,也可以用which:
1、想做当gender 为male时, summary (score1)
>summary(score[which(score$Gender=='male'),'score1'])
注:score为包含楼主示例数据的数据框名。

2、或者是当gender为male时,score1对score2的回归
>score1<-score[which(score$Gender=='male'),'score1']

这是语句2(公式编辑器真是很讨厌,总是弄坏版面,非得用文字隔开):
>score2<-score[which(score$Gender=='male'),'score2']

>score.lm<-lm(score1~score2)

或更简单的:
>score.lm<-lm(score1~score2, data=score[which(score$Gender=='male'),])
二维码

扫码加我 拉你入群

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

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

2015-10-22 15:50:29
hongweigg 发表于 2015-10-22 13:42
subset 可以,也可以用which:
1、想做当gender 为male时, summary (score1)
>summary(score[which(sc ...
万分感谢,试了一下果然可行!
能一点一点解决这种最基本的基础内容对学R也有了信心了~!
您提点以后我在R语言实战的数据集取子集里面也找到了相应的内容。当时只想着这是个条件怎么也要用if的,没往子集的方向上去想,也慌着没仔细看书。
多谢多谢,受益良多!
二维码

扫码加我 拉你入群

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

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

2015-10-22 17:52:26
谢谢学习了  好棒啊  跟楼主一起学习R!
二维码

扫码加我 拉你入群

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

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

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群