gpt4 book ai didi

R - 如果前一个单元格包含字符串模式,则移动单元格/插入 NA

转载 作者:行者123 更新时间:2023-12-02 01:00:37 24 4
gpt4 key购买 nike

我遇到了一个起初看起来很简单的问题,但我真的不知道如何解决它。我在数据框中导入了几个制表符分隔的 txt 文件,如下所示:

filename    day    V1        V2        V3        V4        V5
A01 1 gha1@10 gha2@No phb1@45 phb2@3 NA
A01 2 gha1@12 gha2@No phb1@23 phb2@32 NA
A02 1 gha1@8 gha2@Yes gha3@4 phb1@21 phb2@14
A02 2 gha1@3 gha2@No phb1@2 phb2@13 NA
A03 1 gha1@9 gha2@Yes gha3@3 phb1@22 phb2@13
A03 2 gha1@4 gha2@Yes gha3@5 phb1@12 phb2@17
A04 1 gha1@14 gha2@Yes gha3@12 phb1@11 phb2@9
A04 2 gha1@10 gha2@Yes gha3@12 phb1@10 phb2@8

这些数据来自问卷调查,其中给出了 V2 (gha2@) 中问题的答案,人们是否给出了问题 gha@3。然而,如您所见,V3 混合了 gha3@ 和 phb1@。

最后,我想这样结束:

filename    day    V1        V2        V3        V4        V5
A01 1 gha1@10 gha2@No NA phb1@45 phb2@3
A01 2 gha1@12 gha2@No NA phb1@23 phb2@32
A02 1 gha1@8 gha2@Yes gha3@4 phb1@21 phb2@14
A02 2 gha1@3 gha2@No NA phb1@2 phb2@13
A03 1 gha1@9 gha2@Yes gha3@3 phb1@22 phb2@13
A03 2 gha1@4 gha2@Yes gha3@5 phb1@12 phb2@17
A04 1 gha1@14 gha2@Yes gha3@12 phb1@11 phb2@9
A04 2 gha1@10 gha2@Yes gha3@12 phb1@10 phb2@8

所以在某种程度上,我希望将一些单元格向右“移动”,或者如果前一个单元格包含“gha2@No”则插入“NA”,但我对 R 的了解不允许我这样做找到有用的解决方案(显然也不是我的 Google 技能):/

感谢您的回答(对大概的英文感到抱歉)!

TL;DR:我有一份调查问卷的数据,每行的回答数量不均匀:如果您对问题 3 说"is",您会得到一个额外的问题 3b。如果你说“不”,你会得到问题 4。因此,我最终得到一些混合了附加问题 3b 和以下问题 4 的列。因此,如果前一个单元格包含特定模式,我想插入 NA问题 3(在本例中为“否”)。

最佳答案

read.table(text = "
filename day V1 V2 V3 V4 V5
A01 1 gha1@10 gha2@No phb1@45 phb2@3 NA
A01 2 gha1@12 gha2@No phb1@23 phb2@32 NA
A02 1 gha1@8 gha2@Yes gha3@4 phb1@21 phb2@14
A02 2 gha1@3 gha2@No phb1@2 phb2@13 NA
A03 1 gha1@9 gha2@Yes gha3@3 phb1@22 phb2@13
A03 2 gha1@4 gha2@Yes gha3@5 phb1@12 phb2@17
A04 1 gha1@14 gha2@Yes gha3@12 phb1@11 phb2@9
A04 2 gha1@10 gha2@Yes gha3@12 phb1@10 phb2@8", header = T) -> df


library(dplyr)

df %>% mutate_if(is.factor, as.character) -> df


df %>%
filter(V2 == "gha2@No") %>%
rename(V4 = V3, V5 = V4, V3 = V5) -> df_temp

df %>%
filter(V2 == "gha2@Yes") %>%
full_join(df_temp) %>%
arrange(filename)


filename day V1 V2 V3 V4 V5
1 A01 1 gha1@10 gha2@No <NA> phb1@45 phb2@3
2 A01 2 gha1@12 gha2@No <NA> phb1@23 phb2@32
3 A02 1 gha1@8 gha2@Yes gha3@4 phb1@21 phb2@14
4 A02 2 gha1@3 gha2@No <NA> phb1@2 phb2@13
5 A03 1 gha1@9 gha2@Yes gha3@3 phb1@22 phb2@13
6 A03 2 gha1@4 gha2@Yes gha3@5 phb1@12 phb2@17
7 A04 1 gha1@14 gha2@Yes gha3@12 phb1@11 phb2@9
8 A04 2 gha1@10 gha2@Yes gha3@12 phb1@10 phb2@8

关于R - 如果前一个单元格包含字符串模式,则移动单元格/插入 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50814459/

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