无法删除行

Can not remove rows

您好,我有以下数据框 (Unt):

    Day       sunrise   sunset   day.length

1    Monday     6.42    19.97       13.55
2    Monday     6.42    19.97       13.55
3    Monday     6.42    19.97       13.55
4    Monday     6.42    19.97       13.55
5    Monday     6.42    19.97       13.55
6    Monday     6.42    19.97       13.55
7    Monday     6.42    19.97       13.55
8    Friday     6.42    19.97       13.55
9    Friday     6.42    19.97       13.55
10   Friday     6.42    19.97       13.55
11   Saturday       6.42    19.97       13.55
12   Saturday       6.42    19.97       13.55
13   Saturday       6.42    19.97       13.55
14   Saturday       6.42    19.97       13.55
15   Saturday       6.42    19.97       13.55
16   Sunday     6.42    19.97       13.55
17   Sunday     6.42    19.97       13.55
18   Sunday     6.42    19.97       13.55
19   Sunday     6.42    19.97       13.55

我正在尝试删除天数为 "Sunday" 和 "Saturday" 的行。我试过以下

    week<-subset(Unt, Day!="Sunday" & Day!="Saturday")

    week<- Unt [!Unt$Day %in% c("Sunday", "Saturday"), ]

然而,在这两种情况下,行都没有被删除。

这是您问题的可能解决方案

day.length <- c(rep(13.55, 19))
Day <- factor(c(rep("Monday", 7), rep("Friday", 3),
rep("Saturday", 5), rep("Sunday", 4)))
sunset <- c(rep(6.42, 19))
sunrise <- c(rep(19.97, 19))

df <- data.frame(Day, sunrise, sunset, day.length )
df2 <- subset(df, Day!= "Sunday" & Day!= "Saturday")

df2 就是你想要的。正如 jeremycg 所指出的,您应该从 Day 变量中删除任何 spaces。

OP,当你将数据上传到 R 时,也许你可以尝试添加 strip.white = TRUE 就像 data <- read.csv("data.csv", header = TRUE, strip.white = TRUE) 一样,看看这是否解决了问题?或者,您可以在加载数据后删除白色 space - 请参阅此 post 了解更多详细信息。否则,如果无法访问造成问题的原始数据集,将很难提供帮助。

根据您在上一个问题 中的错误输出,您有 " Friday", " Monday" 作为输入。当这里的人尝试复制时,前导空格被删除,您需要使用 dput(Unt) 而不是粘贴,这样就不会发生这样的事情。

我猜你的星期六和星期日列是一样的,所以试试:

Unt[!(Unt$Day %in% c(" Saturday", " Sunday")), ]

或者在读取 csv 时删除它们。