R - как вычесть из строки - PullRequest
       18

R - как вычесть из строки

0 голосов
/ 28 декабря 2018

мой фрейм выглядит так.

df <- read.table(text="
                 column1  column2   column3
    1            3        2         1
    1            3        2         1 
", header=TRUE)

Мне нужно вычесть последние 2 столбца из первого.Для подсчета этих столбцов я бы использовал rowSums(summary[,1:3]), но я не знаю, как вычесть эти столбцы.Обратите внимание, что я не могу просто написать свой код, как это, так как я не знаю имен столбцов.

`result <- df %>% 
mutate(result = rowSums(column1, - column2, - column3))` 

1 Ответ

0 голосов
/ 28 декабря 2018

Мы можем установить поднабор данных, чтобы удалить первый столбец (.[-1]), получить rowSums и вычесть из 'column1'

library(tidyverse)
df %>%
    mutate(result = column1 - rowSums(.[-1]))
#   column1 column2 column3 result
#1       3       2       1      0
#2       3       2       1      0

Если есть еще столбцы и вы хотите выбрать последнийдва столбца

df %>%
    mutate(result = column1 - rowSums(.[tail(names(.), 2)]))

Если у нас есть только индекс столбцов, участвующих в операции

df %>% 
    mutate(result = .[[1]] - rowSums(.[c(2, 3)]))

data

df <- structure(list(column1 = c(3L, 3L), column2 = c(2L, 2L), column3 = c(1L, 
 1L)), class = "data.frame", row.names = c(NA, -2L))
...