小弟有一个数据框,想通过一个程序随机选取其中一半的行数据,比如有10行10列,我想随机得到5行10列的数据框,求大神指点,程序怎么写,万分感谢!!!
R中如何随机选取整行
用 sample 函数
回复 第2楼 的 mengchen:用了之后得到的是10行5列的数据,求问如何随机取5行而不是5列啊!
回复 第3楼 的 273275395:
Sample the row names, then use it to subset.
<br />
dat <- as.data.frame(matrix(rnorm(10), nrow=5))<br />
dat<br />
V1 V2<br />
1 -0.6436334 1.45972325<br />
2 0.7862687 -0.51203074<br />
3 -0.3284080 -0.75884870<br />
4 -1.1309293 0.02368129<br />
5 1.1150183 -0.70088764</p>
<p>dat[sample(row.names(dat), 2),]<br />
V1 V2<br />
4 -1.1309293 0.02368129<br />
1 -0.6436334 1.45972325<br />
</p>回复 第4楼 的 YSU:很管用,谢谢,随机取列是不是只要把row.names改成col.names就行啦?
回复 第5楼 的 273275395:
Not really, see below.
<br />
dat <- as.data.frame(matrix(rnorm(10), nrow=2))<br />
dat<br />
V1 V2 V3 V4 V5<br />
1 3.526979 -1.2938406 0.02296229 0.6783160 -0.2186516<br />
2 -1.174209 -0.5561583 0.32545627 0.7988773 -1.3914670</p>
<p>dat[,sample(1:ncol(dat), 2)]<br />
V2 V3<br />
1 -1.2938406 0.02296229<br />
2 -0.5561583 0.32545627<br />
</p>回复 第6楼 的 YSU:Thank you very much! you are so friendly!I have another problem.http://cos.name/cn/topic/157302 Can you help me ?