簡體   English   中英

根據另一個數據集的元素向數據集添加多個新列

[英]Add multiple new columns to the dataset, based on another dataset's elements

我有以下產品清單

> products
# A tibble: 311 x 1
   value                    
   <fct>                    
 1 NA                       
 2 Alternativ Economy
 3 Ambulant Balance  
 4 Ambulant Economy  
 5 Ambulant Premium  
 6 Ambulant 2               
 7 Ambulant 3               
 8 Ambulant 1               
 9 COMPLETA                 
10 HOSPITAL ECO             
# ... with 301 more rows

和以下df

> df <- data.frame(employee = c('John Doe','Peter Gynn','Jolie Hope'), 
+           salary = c(21000, 23400, 26800), 
+           startdate = as.Date(c('2010-11-1','2008-3-25','2007-3-14')))
> df
    employee salary  startdate
1   John Doe  21000 2010-11-01
2 Peter Gynn  23400 2008-03-25
3 Jolie Hope  26800 2007-03-14

現在,我想將前者(即產品)的元素添加為后者(即 df)的變量。 我用

cbind(df, setNames(lapply(products, function(x) x = NA), products))

但我收到一個錯誤。 你能建議另一種方法嗎? 我的解決方案有什么問題? 提前致謝

這是一種解決方案。

df <- data.frame(employee = c('John Doe','Peter Gynn','Jolie Hope'), 
                 salary = c(21000, 23400, 26800), 
                 startdate = as.Date(c('2010-11-1','2008-3-25','2007-3-14')))

products <- data.frame(value = c(NA, "Alternativ Economy", "COMPLETA"))
#products$value <- ifelse(is.na(products$value), "not_available", as.character(products$value))

cbind(df, `colnames<-`(data.frame(matrix(ncol = nrow(products), nrow = nrow(df))), products$value))

    employee salary  startdate NA Alternativ Economy COMPLETA
1   John Doe  21000 2010-11-01 NA                 NA       NA
2 Peter Gynn  23400 2008-03-25 NA                 NA       NA
3 Jolie Hope  26800 2007-03-14 NA                 NA       NA

我質疑將NA s 作為列名是否明智,因此我將取消注釋其中的一行代碼,以將NA s 替換為某些字符串。

暫無
暫無

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

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