如何在 R 程序中删除带“*”的行?
How can I remove the row with "*" in R program?
我想删除缺少该值的行。例如,我的数据框如下所示:
dat <- data.frame(
time = factor(c("Breakfast","Lunch","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
total_bill = c(12.75,14.89,"*",17.23)
)
我想删除值为 * 的午餐列。我应该怎么办?任何帮助将不胜感激。
我们可以使用 subset
和 !=
dat1 <- droplevels(subset(dat, total_bill != "*"))
dat1 <- type.convert(dat1, as.is = TRUE)
sum(dat1$total_bill, na.rm = TRUE)
#[1] 44.87
如果 total_bill
是字符,您可以将其转换为数字,这将自动将所有非字符转换为 NA
并显示警告消息,然后您可以执行 sum
, mean
或其他数学运算。
sum(as.numeric(dat$total_bill),na.rm = TRUE)
#[1] 44.87
如果total_bill
是因子,你需要使用
sum(as.numeric(as.character(dat$total_bill)),na.rm = TRUE)
我想删除缺少该值的行。例如,我的数据框如下所示:
dat <- data.frame(
time = factor(c("Breakfast","Lunch","Lunch","Dinner"), levels=c("Breakfast","Lunch","Dinner")),
total_bill = c(12.75,14.89,"*",17.23)
)
我想删除值为 * 的午餐列。我应该怎么办?任何帮助将不胜感激。
我们可以使用 subset
和 !=
dat1 <- droplevels(subset(dat, total_bill != "*"))
dat1 <- type.convert(dat1, as.is = TRUE)
sum(dat1$total_bill, na.rm = TRUE)
#[1] 44.87
如果 total_bill
是字符,您可以将其转换为数字,这将自动将所有非字符转换为 NA
并显示警告消息,然后您可以执行 sum
, mean
或其他数学运算。
sum(as.numeric(dat$total_bill),na.rm = TRUE)
#[1] 44.87
如果total_bill
是因子,你需要使用
sum(as.numeric(as.character(dat$total_bill)),na.rm = TRUE)