如何从.csv文件创建表?

时间:2014-04-11 18:57:16

标签: r import-from-csv

我从.csv文件中获得以下数据:

Sp  Country   RMU           Temp    Males   Females 
Cc  Australia Pacific, S    25.00   0   7       
Cc  Australia Pacific, S    26.00   17  1   
Ei  STP       Atlantic, E   28.00   21  2       
Ei  Brazil    Atlantic, W   27.50   8   1
Nd  Australia Pacific, S    28.00   2   0   

我想用Males值创建一个新表,就像“Sp == Cc”,意思是

Males
0
17

我试过这个:

m=subset(file3_TMF, Sp=="Cc")$Males

但它正在创建一个“整数(空)”。

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

那些","在RMU字段中创建一个混乱......所以使用你的数据,假设一个.csv在那里你有","介于" Pacific,S":

1)扫描文件(读取csv文件)
2)取消列表(扫描结果为清单)
3)在8列的矩阵中未列出变换(由于","在S / E / W之前)

> dat <- matrix(unlist(scan(file = "dat.csv", what = list(rep("character",8)),
                sep = ",", skip = 1)), ncol = 8, byrow = TRUE)

4)子集行,其中1列==&#34; Cc&#34;,显示第7列(&#34;男性&#34;)

> dat[dat[,1] == "Cc",7]

答案 1 :(得分:0)

在你的m=subset(file3_TMF, Sp=="Cc")$Males中,你有点乱了。

应为subset(file3_TMF$Males, file3_TMF$Sp == "Cc")

以下任意一行代码也会对Males的数据进行分组,以使SpCc
前两个获取Male值的子集,而last返回原始数据的所有行Sp == "Cc"

假设dat是您的数据名称。

> dat$Males[dat$Sp == "Cc"]
[1]  0 17

> dat[dat$Sp == "Cc", ]
  Sp   Country        RMU Temp Males Females
1 Cc Australia Pacific, S   25     0       7
2 Cc Australia Pacific, S   26    17       1