R:将数字列表从字符转换为数字

Gai*_*tar 1 r numeric vector character

我的数据框中有一列,每个单元格中都有一个或多个数字.如果有很多数字,它们会分隔一个空格.此外,R将它们视为字符向量.我真的很想将它们转换成数字(如果可能的话,马上把它们加起来).例如,我的一个细胞可能看起来像

6 310 21 20 64
Run Code Online (Sandbox Code Playgroud)

我试过了

Reduce(sum,L)
Run Code Online (Sandbox Code Playgroud)

as.numeric(L)
Run Code Online (Sandbox Code Playgroud)

但我总是收到警告信息:

通过强制引入的NA

这里,L只是我创建的一个示例对象,用于放入我的一个单元格.

Dav*_*urg 5

这里有两个选项可以在矢量上正常工作(看起来像)

str1 <- c("6 310 21 20 64", "6 310 21 20 64","6 310 21 20 64")
rowSums(read.table(text = str1))
## [1] 421 421 421
Run Code Online (Sandbox Code Playgroud)

或使用 data.table::fread

rowSums(data.table::fread(paste(str1, collapse = "\n")))
# [1] 421 421 421        
Run Code Online (Sandbox Code Playgroud)

或者如@akrun的评论中所述,您可以使用Reduce(`+`,...)而不是rowSums(...)在两种情况下都避免marix转换