我使用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”,它以某种方式工作。
答案 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