[R] Sum of Numeric Values in a DF Column

David Winsemius dwinsemius at comcast.net
Mon Apr 18 19:08:11 CEST 2016


> On Apr 18, 2016, at 9:48 AM, Burhan ul haq <ulhaqz at gmail.com> wrote:
> 
> Hi,
> 
> I request help with the following:
> 
> INPUT: A data frame where column "Lower" is a character containing numeric
> values (different count or occurrences of numeric values in each row,
> mostly 2)
> 
>> dput(dd)
> structure(list(State = c("Alabama", "Alaska", "Arizona", "Arkansas",
> "California"), Lower = c("R 72–33", "R/Coalition 27(23 R, 4 D)–12 D, 1
> Ind.",
> "R 36–24", "R 64–35, 1 Ind.", "D 52–28"), Upper = c("R 26–8, 1 Ind.",
> "R/Coalition 15(14 R, 1 D)–5 D", "R 18–12", "R 24–11", "D 26–14"
> )), .Names = c("State", "Lower", "Upper"), row.names = c(NA,
> 5L), class = "data.frame")
> 
> PROBLEM: Need to extract all numeric values and sum them. There are few
> exceptions like row2. But these can be ignored and will be fixed manually
> 
> SOLUTION SO FAR:
> str_extract_all(dd[[2]],"[[:digit:]]+"), returns a list of numbers as
> character. I am unable to unlist it, because it mixes them all together, ...
> 
> And if I may add, is there a "dplyr" way of doing it ...

I don't understand what is mean by "it mixes them all together". This runs without error and appears to deliver what was requested in your natural language description:

> sum( as.numeric( unlist(str_extract_all(dd[[2]],"[[:digit:]]+") )))
[1] 412


> 
> 
> Thanks
> 
> 	[[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

David Winsemius
Alameda, CA, USA



More information about the R-help mailing list