簡體   English   中英

在R中動態創建列

[英]Dynamically Create Columns in R

我有一個我希望能夠動態創建列(包括其名稱)的數據集。

一個簡化的數據集示例是:

dataset <- data.frame(data = c(0,1,2,3),
                      signups = c(100, 150, 200, 210),
                      leads = c(10, 12, 15, 18),
                      opportunities = c(2, 4, 5, 3), 
                      closed = c(1,4,2,1))

我想要數據集的以下其他字段,其定義如下:

lead_percentage <- dataset$leads / dataset$signups
opportunity_percentage <- dataset$opportunities / dataset$signups
closed_percentage <- dataset$closed / dataset$signups

我有很多專欄文章針對這種情況而發生,並且無法弄清楚如何進行遍歷。

到目前為止,我知道我可以使用以下代碼創建列名稱的列表:

colnames_list <- 0
c <- 1
for(c in c(4:ncol(dataset)-1)) {
    colnames_list[c] = paste(colnames(dataset)[c], "percentage")
}

我也知道如何動態定義新列的值,但是似乎無法弄清楚如何從列表到數據框獲取新列的名稱。

這可能是您需要的

l <- lapply(dataset[,3:5], "/", dataset$signups)
names(l) <- paste(names(dataset[,3:5]), "percentage", sep = "_")
dataset <- cbind(dataset,l)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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