gpt4 book ai didi

r - 进行按行替换的“正确”方法

转载 作者:行者123 更新时间:2023-12-04 16:27:01 28 4
gpt4 key购买 nike

我有一个数据框,看起来像:

dataDemo <- data.frame(POS = 1:4 , REF = c("A" , "T" , "G" , "C") , 
ind1 = c("A" , "." , "G" , "C") , ind2 = c("A" , "C" , "C" , "."),
stringsAsFactors=FALSE)

dataDemo

POS REF ind1 ind2
1 1 A A A
2 2 T . C
3 3 G G C
4 4 C C .

我想用 REF 替换所有的“.”该行的值。这是我如何做到的:
for(i in seq_along(dataDemo$REF)){
dataDemo[i , ][dataDemo[i , ] == '.'] <- dataDemo$REF[i]
}

我想知道在 R 中是否有更“正确”或惯用的方法来执行此操作。我通常尽可能使用 *apply ,这似乎可以轻松适应该方法并使其更具可读性(和跑得更快),但尽管投入了大量时间,但我并没有取得太大进展。

最佳答案

dplyr ,

library(dplyr)

dataDemo %>% mutate_each(funs(ifelse(. == '.', REF, as.character(.))), -POS)
# POS REF ind1 ind2
# 1 1 A A A
# 2 2 T T C
# 3 3 G G C
# 4 4 C C C

关于r - 进行按行替换的“正确”方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37928382/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com