找回密码
 注册
查看: 8300|回复: 3

R语言新手求助:如何将读入的数据进行判断后存入数组?

[复制链接]
发表于 2011-11-27 06:51:39 | 显示全部楼层 |阅读模式
新手求教,大侠帮忙啊
数据室txt格式
如读后(给个假设是这样的)
    V1    V2
1     2      1
2     1      3
3     5      2   
4     3      0     
5     4      1

要实现的过程是这样的,想先对V2这一列的数进行判断,如果是数值等于1的话,就将它对应的V1的值2存入数组x,如果是v2等于3的话就将v1对应的值1继续存入刚才的数组x,存入1的个数与v2的值相等,当v2值等于0的话,则不存入

例子得到的结果x应该是这样的x[2,1,1,1,5,5,4]
然后再用x进行其它用途(后面的我就知道了)
由于是新手,不知道r语言中如何存数组(还是不对等长度固定的数组),还因为我要判断,不知道r中可不可以用if语句

补充:这个我要测试的数据有点多600组,按1.txt 2.txt 3.txt....排序,能不能在读文件这块用个循环,就是读完1.txt进行测试输出结果后继续读2.txt进行相同的测试,这个循环不太会写,想半天不知道怎么实现....悲剧
回复

使用道具 举报

发表于 2011-11-30 10:31:07 | 显示全部楼层
data=c(2,1,5,3,4,1,3,2,0,1)
dim(data)=c(5,2)
rep(data[,1],data[,2])
回复 支持 反对

使用道具 举报

发表于 2011-11-29 10:37:16 | 显示全部楼层
data<-c(2,1,5,3,4,1,3,2,0,1)
data.matrix<-matrix(data,c(5,2))
colnames(data.matrix)<-c("v1","v2")
> data.matrix
     v1 v2
[1,]  2  1
[2,]  1  3
[3,]  5  2
[4,]  3  0
[5,]  4  1

result<-unlist(sapply(1:dim(data.matrix)[1],function(x) rep(data.matrix[x,1],data.matrix[x,2])))
> result
v1 v1 v1 v1 v1 v1 v1
2  1  1  1  5  5  4

实现方法很多,仅提供一种作为参考。
回复 支持 反对

使用道具 举报

发表于 2011-11-29 10:50:17 | 显示全部楼层
对于第二个问题,先将你的数据存入某一个文件夹中(如小四集),然后通过下面函数读入.txt文件。
> filespath<-list.files("F://小四集合",pattern=".txt",full.names=T)
> filespath
[1] "F://小四集合/1.txt" "F://小四集合/2.txt" "F://小四集合/3.txt"

然后便可写个小循环,做你想做的文件读入了
回复 支持 反对

使用道具 举报

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

本版积分规则

手机版|小黑屋|生物统计家园 网站价格

GMT+8, 2024-11-25 12:03 , Processed in 0.023478 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表