-2

我使用 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”,这在某种程度上起作用了。

4

1 回答 1

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

于 2013-02-15T21:30:16.937 回答