全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
1502 6
2012-11-07
编程的时候遇到的一个简单的问题。
比如有数据框如下
     v1     v2
1   a        1
2   b,c   2

我想把它展开,v1里面的每个变量作为一行观测值,也就是输出成这样:
    v1       v2
1  a          1
2  b          2
3  c          2

有没有什么解放方法?
我目前用的循环,问题是这个文件有4000+观测值,时间消耗太大了
有没有以向量的方式来处理的呢?

二维码

扫码加我 拉你入群

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

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

全部回复
2012-11-7 17:12:19
复制代码
二维码

扫码加我 拉你入群

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

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

2012-11-7 19:14:19
qoiqpwqr 发表于 2012-11-7 17:12
学习了
二维码

扫码加我 拉你入群

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

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

2012-11-13 15:03:10
qoiqpwqr 发表于 2012-11-7 17:12
可以了,感谢~
不过在实际应用中有一个问题,就是我的列不止2个,这个例子简化了。
当有很多列的时候,中间那句:
rep(v2,len)
过不去,因为此时v2不再是一个vector,而成了一个data frame,rep命令就不行了。
一个简便的办法是逐列rep,问题是我有30列,稍显繁琐。
请问还有没有其他命令可以简单的重复data frame的某些行?
二维码

扫码加我 拉你入群

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

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

2012-11-13 23:01:40
bayes 发表于 2012-11-13 15:03
可以了,感谢~
不过在实际应用中有一个问题,就是我的列不止2个,这个例子简化了。
当有很多列的时候, ...
把那句改成
vv2 <- apply(x[, -1], 2, rep, len)

二维码

扫码加我 拉你入群

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

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

2012-11-14 01:22:11
qoiqpwqr 发表于 2012-11-13 23:01
把那句改成
vv2
原来如此,还是apply族函数用的不熟啊,呵呵~
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
栏目导航
热门文章
推荐文章

说点什么

分享

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