当数据框的这些列中缺少某些值时,我在数据框内执行操作时会遇到问题。我的目标只是忽略它们(不要删除缺少值的行或列)并照常执行操作。
这是我的数据框:
dat <- data.frame(
time = factor(c("Breakfast","Breakfast","Lunch","Lunch","Breakfast","Dinner","Dinner","Dinner","Snack","Snack","Lunch","Snack","Snack"), levels=c("Breakfast","Lunch","Dinner","Snack")),
total_bill_x = c("*",14.89,20.5,17.23,30.3,"*",20.7,32.3,25.4,14.5,13.7,14.2,15.7), total_bill_y= c(20.75,"*",18.52,"*",27.3,23.6,19.75,27.3,21.48,13.66,15.59,17.3,14.78)
)
我想执行类似sum(dat$total_bill_x)
sum(dat$total_bill_y)
的操作。
对此的任何帮助将不胜感激
这些列是factor
,需要将其转换为numeric
。 *
之类的元素在此过程中将变为NA
并发出警告]
library(dplyr)
dat %>%
summarise_at(vars(starts_with('total')), ~
sum(as.numeric(as.character(.)), na.rm = TRUE))