我从.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
但它正在创建一个“整数(空)”。
有人可以帮忙吗?
答案 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
的数据进行分组,以使Sp
为Cc
。
前两个获取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