簡體   English   中英

在R中的數據幀的某些列中添加值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM