Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 将每行的数字相加,求和_R - Fatal编程技术网

R 将每行的数字相加,求和

R 将每行的数字相加,求和,r,R,有这样一个数据帧 data.frame(id = c(1,2), num = c("30, 4, -2,","10, 20")) 如何从num列中获取每一行的总和,并在计算中包含负数? 预期产出的例子 data.frame(id = c(1,2), sum = c(32, 30) 如果您可以使用软件包,那么整洁的软件包会使这变得容易,并且使用整洁的数据主体,一旦您习惯了这种方式,这些数据主体就会变得快速和简单 library(tidyr) library(dplyr) df %>%

有这样一个数据帧

data.frame(id = c(1,2), num = c("30, 4, -2,","10, 20"))
如何从num列中获取每一行的总和,并在计算中包含负数? 预期产出的例子

data.frame(id = c(1,2), sum = c(32, 30)

如果您可以使用软件包,那么整洁的软件包会使这变得容易,并且使用整洁的数据主体,一旦您习惯了这种方式,这些数据主体就会变得快速和简单

library(tidyr)
library(dplyr)
df %>%
  # Convert the string of numbers to a tidy dataframe
  # with one number per row with the id column for grouping
  separate_rows(num,sep = ",") %>%
  # Convert the text to a number so we can sum
  mutate(num = as.numeric(num)) %>%
  # Perform the calculation for each id
  group_by(id) %>%
  # Sum the number
  summarise(sum = sum(num,na.rm = TRUE)) %>%
  # Ungroup for further use of the data
  ungroup()
# A tibble: 2 x 2
#      id   sum
#   <dbl> <dbl>
# 1     1    32
# 2     2    30
library(tidyr)
图书馆(dplyr)
df%>%
#将数字字符串转换为整齐的数据帧
#每行一个数字,id列用于分组
单独的_行(num,sep=“,”)%>%
#将文本转换为数字,这样我们就可以求和了
变异(num=as.numeric(num))%>%
#对每个id执行计算
分组依据(id)%>%
#求和
总结(总和=总和(num,na.rm=TRUE))%>%
#解组以进一步使用数据
解组()
#一个tibble:2x2
#身份证金额
#    
# 1     1    32
# 2     2    30

使用
Base R
可以执行以下操作:

# data
df <- data.frame(id = c(1,2), num = c("30, 4, -2,","10, 20"))

# split by ",", convert to numeric and then sum
df[, 2] <- sapply(strsplit(as.character(df$num), ","), function(x){
  sum(as.numeric(x))
})

# result 
df
#   id num
# 1  1  32
# 2  2  30
#数据
df
库(stringr)
df