我的问题与R中的编程有关。我的数据集如下所示: enter image description here
我想从列id_code
填充空(空白而非空白)行,并使用distribution.type
列中的相应值填充。
我使用了我的想法,即mutate
函数mutate(df$distribution.type [ifelse(df$id_code == "", df$distribution.type, df$id_code)])
或类似的东西:
df$id_code[df$id_code == ""] <- df$distribution.type[df$id_code == ""]
还有很多其他概念,但它们没有用。 我可以请求你的帮助吗?
答案 0 :(得分:0)
这是一个玩具数据集:
df = data.frame('id_code'=c('','2','3',NA,''),'distribution.type'=c('A','B',NA,'D','E'),stringsAsFactors=F)
下面是一个子集化解决方案(具体排除了具有NA的行)。见Subsetting R data frame results in mysterious NA rows
df$id_code[!is.na(df$id_code) & df$id_code == ""] <- df$distribution.type[!is.na(df$id_code) & df$id_code == ""]
以下是使用dplyr的解决方案。也许请参阅https://stackoverflow.com/a/28592577/2176211
library(dplyr)
df <- mutate(df,id_code = ifelse(id_code == "", distribution.type, id_code))
答案 1 :(得分:0)
以下是使用data.table
的选项。我们根据'i'中的条件将'data.frame'转换为'data.table'(setDT(df)
),即'id_code'为''
(blank
)的行,我们为(:=
)分配'distribution.type的相应元素。它正在分配,所以会很快。
library(data.table)
setDT(df)[id_code=='', id_code:= distribution.type]