使用R中的子集但获得一个具有0行的特定子集

时间:2013-02-15 20:54:11

标签: r

我使用R来对数据集D(CSV格式)进行子集,但D3总是包含0行“< 0 rows>(或0-length row.names)。”我检查了数据集,但未找到任何缺失值。我的数据集可能有什么问题?谢谢!

D <- read.csv(file="C:\\...\\D.csv", header = T, sep = ",")

D1 <- subset(D, Season == "Spring")
D2 <- subset(D, Season == "Summer")
D3 <- subset(D, Season == "Fall")

D3
[1] Cost
[2] Gender                                     
[3] Participant                                 
<0 rows> (or 0-length row.names)

names(D)
[1] "Cost"
[2] "Gender"                                     
[3] "Participant"                                    

unique(B$Season)
[1] Spring       Summer    Fall            
3 Levels: Fall Spring Summer

我创建了一个仅包含D3(CSV格式)的新数据集,问题就消失了。但是,这不是一个有效的解决方案。

感谢大家提出的所有建议!我只是重新输入了我原来的CSV数据集中的每一个“Fall”,它以某种方式工作。

1 个答案:

答案 0 :(得分:1)

在你选择subset之前,你应该检查你正在使用的逻辑陈述。如果您的数据框相对较小(<25行左右),则运行:

D$Season == "Fall"

这会给你一个像:

这样的矢量
[1] TRUE TRUE FALSE FALSE FALSE TRUE

甚至:

which(D$Season == "Fall")

[1] 1 2 6

这告诉您将选择哪个rows子集。

如果您有庞大的数据框,请执行以下操作:

table(D$Season == "Fall")

这将告诉您有多少行具有值Fall。如果您运行table(D$Season == "Fall")我愿意下注,您会看到所有结果都出现FALSE

相关问题