[英]Filling in empty elements on a vector from another vector by position [R]
如果我有這樣一個帶有空元素的向量:
vec_empty_element <- c("z", "a", "", "")
然后我有另一個像這樣的向量,它的長度總是相同的:
needed_names <- c("x + y", "x/2", "y", "x")
如何用同一 position 中的vec_empty_element
中的值替換needed_names
中的空元素?
這就是我想要結束的:
desired_vec <- c("z", "a", "y", "x")
一種選擇是將空白 ( ""
轉換為NA
,然后coalesce
library(dplyr)
coalesce(na_if(vec_empty_element, ""), needed_names)
[1] "z" "a" "y" "x"
或者在base R
中使用ifelse
ifelse(nzchar(vec_empty_element), vec_empty_element, needed_names)
[1] "z" "a" "y" "x"
使用nzchar
:
vec_empty_element <- c("z", "a", "", "")
needed_names <- c("x + y", "x/2", "y", "x")
vec_empty_element[!nzchar(vec_empty_element)] <- needed_names[!nzchar(vec_empty_element)]
# [1] "z" "a" "y" "x"
您還可以使用簡單的索引:
vec_empty_element[vec_empty_element == ""] <- needed_names[vec_empty_element == ""]
#[1] "z" "a" "y" "x"
或者用ifelse
vec_empty_element <- ifelse(vec_empty_element == "", needed_names, vec_empty_element)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.