在r中用逗号分隔的两个值之和
我有一个数据框,其中几列有两个值,它们之间用逗号分隔,如下所示:在r中用逗号分隔的两个值之和,r,R,我有一个数据框,其中几列有两个值,它们之间用逗号分隔,如下所示: x<-c("a", "b", "c") y<-c("1", "2", "3,4") z<-c("3", "4", "1,2") df<-data.frame(x,y,z) x一个选项是在“y”、“z”列上使用分隔行在分隔符处拆分,,展开行,按“x”列分组,获得所有其他列的总和 library(dplyr) library(tidyr) df %>% separate_rows(y, z, co
x<-c("a", "b", "c")
y<-c("1", "2", "3,4")
z<-c("3", "4", "1,2")
df<-data.frame(x,y,z)
x一个选项是在“y”、“z”列上使用分隔行
在分隔符处拆分,
,展开行,按“x”列分组,获得所有其他列的总和
library(dplyr)
library(tidyr)
df %>%
separate_rows(y, z, convert = TRUE) %>%
group_by(x) %>%
summarise_all(sum)
# A tibble: 3 x 3
# x y z
# <fct> <int> <int>
#1 a 1 3
#2 b 2 4
#3 c 7 3
库(dplyr)
图书馆(tidyr)
df%>%
单独的_行(y,z,convert=TRUE)%>%
分组依据(x)%>%
总结所有(总和)
#一个tibble:3x3
#x y z
#
#1A13
#2 b 2 4
#3 c 7 3
一个选项是在“y”、“z”列上使用分隔行
在分隔符处拆分,
,展开按“x”列分组的行,获得所有其他列的总和
library(dplyr)
library(tidyr)
df %>%
separate_rows(y, z, convert = TRUE) %>%
group_by(x) %>%
summarise_all(sum)
# A tibble: 3 x 3
# x y z
# <fct> <int> <int>
#1 a 1 3
#2 b 2 4
#3 c 7 3
库(dplyr)
图书馆(tidyr)
df%>%
单独的_行(y,z,convert=TRUE)%>%
分组依据(x)%>%
总结所有(总和)
#一个tibble:3x3
#x y z
#
#1A13
#2 b 2 4
#3 c 7 3
对于每一列,我们使用gsubfn
匹配数字、逗号、将两组数字传递给公式表示法中表示的函数的数字。函数的输出将替换输入
library(gsubfn)
repl <- function(x) gsubfn("(\\d+),(\\d+)", ~ as.numeric(x) + as.numeric(y), paste(x))
replace(df, TRUE, lapply(df, repl))
对于每一列,我们使用gsubfn
匹配数字、逗号、将两组数字传递给公式表示法中表示的函数的数字。函数的输出将替换输入
library(gsubfn)
repl <- function(x) gsubfn("(\\d+),(\\d+)", ~ as.numeric(x) + as.numeric(y), paste(x))
replace(df, TRUE, lapply(df, repl))
我在我的数据集上尝试了这一点,但是我收到了错误消息“总结中出错(.data,dots):计算错误:参数的“类型”(字符)无效”。我尝试更改为数字,但所有带有逗号的条目都会自动更改为NAs。我应该使用另一种类型吗?@Mary你能将你的数据集创建为character
class(虽然它对我来说工作得很好)dfI用我的数据集尝试了这一点,但是我收到了错误消息“error in summary\u impl(.data,dots):求值错误:参数的'type'(character)无效。”我尝试改为数值,但是,所有带有逗号的条目都会自动更改为NAs。我应该使用另一种类型吗?@Mary你能将你的数据集创建为character
class(尽管它对我来说很好)df吗