R为数据帧用NA填充缺失值
我目前正在尝试创建一个包含以下列表的数据框R为数据帧用NA填充缺失值,r,list,dataframe,na,R,List,Dataframe,Na,我目前正在尝试创建一个包含以下列表的数据框 location <- list("USA","Singapore","UK") organization <- list("Microsoft","University of London","Boeing","Apple") person <- list() date <- list("1989","2001","2018") Jobs <- list("CEO","Chairman","VP of sales","G
location <- list("USA","Singapore","UK")
organization <- list("Microsoft","University of London","Boeing","Apple")
person <- list()
date <- list("1989","2001","2018")
Jobs <- list("CEO","Chairman","VP of sales","General Manager","Director")
location这里是purrr
(属于tidyverse
的一部分)和基本R解决方案,假设您只想用NA
填充每个列表中的剩余值。我将任何列表的最大长度取为len
,然后对每个列表执行rep(NA)
,计算该列表的长度与任何列表的最大长度之间的差异
库(tidyverse)
地点3英国波音NA 2018销售副总裁
#>4 NA苹果公司NA总经理
#>5不适用董事
在base R中,您可以在列表列表中使用相同的函数,然后使用Reduce
对结果列表进行cbind
并将其转换为数据帧。采取两个步骤,而不是purrr
的一个步骤:
cols V1 V2 V4 V5
#>1美国微软北美公司1989年首席执行官
2伦敦大学新加坡2001主席
#>3英国波音2018年北美销售副总裁
#>4 NA苹果公司NA总经理
#>5不适用董事
对于这两种情况,您现在可以随意设置名称。您可以执行以下操作:
data.frame(sapply(dyem_list, "length<-", max(lengths(dyem_list))))
location organization person date Jobs
1 USA Microsoft NULL 1989 CEO
2 Singapore University of London NULL 2001 Chairman
3 UK Boeing NULL 2018 VP of sales
4 NULL Apple NULL NULL General Manager
5 NULL NULL NULL NULL Director
你打算怎么排队?什么日期对应于什么作业等?假设您希望NAs位于最后,我将使用类似的解决方案来解决固定的问题n@camille就本例而言,排队并不重要
dyem_list <- list(
location = list("USA","Singapore","UK"),
organization = list("Microsoft","University of London","Boeing","Apple"),
person = list(),
date = list("1989","2001","2018"),
Jobs = list("CEO","Chairman","VP of sales","General Manager","Director")
)