全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1361 4
2020-06-08
具体细节是这样的:co_c1到co_10共十个变量,需要统计每一行有多少个1。
data.txt
大小:(5.83 KB)

 马上下载


QQ截图20200608230434.png
在stata中可用了循环,代码如下:
forvalues i=1/10 {
gen cnt`i'=(co_c`i'==1)
}  //对每个符合co_c`i'==1等于1的赋值为1,并在对应变量 cnt`i'中生成1以保存
egen cnt=rowtotal(cnt1-cnt10) //求和




可以批量生成如下变量,然后通过加总可以统计出每列co_c1到co_10有多少个1
111.png

但是这一操作怎么才能在R语言中实现呢?
R的循环体里好像不能直接用类似
for (i in 1:10) {
data $ cnt`i'<- ifelse(data $ co_c`i'==1,1,0)
}这样的句子,如果我想对原始数据中co_c1、co_c2...者样的变量批处理怎么弄呢?

很头痛的是原始数据中co_c1和co_c2中间还有其他变量
二维码

扫码加我 拉你入群

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

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

全部回复
2020-6-9 11:36:45
复制代码
二维码

扫码加我 拉你入群

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

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

2020-6-9 11:44:17
才看到你需要循环,,不过我觉得 不用循环效率高一点吧
复制代码

在R中,data.frame本质上是list,可以用形如x[["co_c1"]]的方式取出某一列的具体元素





二维码

扫码加我 拉你入群

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

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

2020-6-9 11:47:04
megapanda 发表于 2020-6-9 11:36
谢谢大佬啦 方法挺好 提供了一种新思路
二维码

扫码加我 拉你入群

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

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

2020-6-10 22:59:59
megapanda 发表于 2020-6-9 11:44
才看到你需要循环,,不过我觉得 不用循环效率高一点吧
在R中,data.frame本质上是list,可以用形如 ...
好的 谢谢大佬 其他软件循环用习惯了 一下子还没改过来
二维码

扫码加我 拉你入群

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

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

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

说点什么

分享

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