3 回答

TA貢獻1777條經驗 獲得超10個贊
這更多是一種解決方法,但可以使用
iris %>% mutate(sumVar = rowSums(.[1:4]))
如注釋中所寫,您還可以使用selectmutate內部來獲取要匯總的列,例如
iris %>%
mutate(sumVar = rowSums(select(., contains("Sepal")))) %>%
head
要么
iris %>%
mutate(sumVar = select(., contains("Sepal")) %>% rowSums()) %>%
head

TA貢獻1890條經驗 獲得超9個贊
我正在使用這個簡單的解決方案,它是對Davide Passaretti的回答的更強大的修改:
iris %>% select(Sepal.Length:Petal.Width) %>%
transmute(sumVar = rowSums(.)) %>% bind_cols(iris, .)
(但是,這需要定義的行順序,這應該很好,除非您可能使用遠程數據集。)

TA貢獻1843條經驗 獲得超7個贊
您也可以使用grep代替containsor matches,以防萬一您需要熟悉正則表達式(matches根據我的經驗,這似乎不太像否定的前瞻之類)。
iris %>% mutate(sumVar = rowSums(select(., grep("Sepal", names(.)))))
- 3 回答
- 0 關注
- 1254 瀏覽
添加回答
舉報