通过忽略r中的特定字符对数据框的列执行操作

问题描述 投票:0回答:1

当数据框的这些列中缺少某些值时,我在数据框内执行操作时会遇到问题。我的目标只是忽略它们(不要删除缺少值的行或列)并照常执行操作。

这是我的数据框:

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)的操作。

对此的任何帮助将不胜感激

r special-characters ignore operation
1个回答
0
投票

这些列是factor,需要将其转换为numeric*之类的元素在此过程中将变为NA并发出警告]

 library(dplyr)
 dat %>% 
       summarise_at(vars(starts_with('total')), ~ 
             sum(as.numeric(as.character(.)), na.rm = TRUE))
© www.soinside.com 2019 - 2024. All rights reserved.