[英]adding values in certain columns of a data frame in R
我是R的新手。在數據框架中,我想創建一個新的列#21,它等於行#1到#20的總和,逐行。
我知道我能做到
df$Col21<-df$Col1+df$Col2+.....+df$Col20
但是有更簡潔的表達嗎?
另外,如果使用列名而不是數字,我可以實現這一點嗎? 謝謝!
有rowSums:
df$Col21 = rowSums(df[,1:20])
應該做的伎倆和名稱:
df$Col21 = rowSums(df[,paste("Col", 1:20, sep="")])
使用前導零和3位數,嘗試:
df$Col21 = rowSums(df[,sprintf("Col%03d", 1:20, sep="")])
我發現列選擇的dplyr
函數非常直觀,如starts_with(), ends_with(), contains(), matches()
和num_range()
:
df <- as.data.frame(replicate(20, runif(10)))
names(df) <- paste0("Col", 1:20)
library(dplyr)
# e.g.
summarise_each(df, funs(sum), starts_with("Col"))
# or
rowSums(select(df, contains("8")))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.