簡體   English   中英

通過 position [R] 從另一個向量填充一個向量上的空元素

[英]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.

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