用不同非空行的值填充空行
Fill empty rows with values of different non-empty row
我的问题与 R 中的编程有关。我的数据集如下所示:
enter image description here
我想用来自列 distribution.type
.
的适当值填充列 id_code
中的空行(空白不是 NA)
我的想法被使用了,即 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 == ""]
和许多其他概念,但它们没有用。
我可以请求你的帮助吗?
这是一个玩具数据集:
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 的解决方案。也许看到
library(dplyr)
df <- mutate(df,id_code = ifelse(id_code == "", distribution.type, id_code))
这是一个使用 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]
我的问题与 R 中的编程有关。我的数据集如下所示: enter image description here
我想用来自列 distribution.type
.
id_code
中的空行(空白不是 NA)
我的想法被使用了,即 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 == ""]
和许多其他概念,但它们没有用。 我可以请求你的帮助吗?
这是一个玩具数据集:
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 的解决方案。也许看到
library(dplyr)
df <- mutate(df,id_code = ifelse(id_code == "", distribution.type, id_code))
这是一个使用 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]