【问题标题】:Recode a subset of column and row重新编码列和行的子集
【发布时间】:2014-03-24 14:26:38
【问题描述】:

我有一个 data.frame,我想在选择某些行值后重新编码某些特定列。 我的 data.frame 看起来像这样。第一列 ID,第二和第三列是我想用来选择特定行的值,第 4 列及以上是我要重新编码的值存储。

我已将要重新编码的列名存储在向量中 -> list1

df <- data.frame(letters[1:10],letters[1:2],letters[3:4],rep(0:1,each=5),rep(1:0,each=5),rep(1:0,each=5),rep(1:0,each=5))

names(df)<-c("Sample","cond1","cond2","ge1","ge2","ge3","ge4")
df

list1  <-  c("ge1","ge3")

我想得到什么: 当我选择 cond1 == a 和 cond2 == c 时,我可以重新编码特定列(列在向量中)的值,在这种情况下为列 ge1 和 ge3。

a.e 如果满足条件,则将 ge1 和 ge3 重新编码为 NA。

我尝试过类似的方法: df$cond1[df$cond1 == "a" &amp; df$cond2 =="c"] 还有很多其他的,但我总是失败!

【问题讨论】:

    标签: r


    【解决方案1】:

    您想将特定列的条件行设置为NA

    df[df$cond1=="a" & df$cond2=="c", list1]  <- NA
    

    【讨论】:

    • 对不起,我没有意识到这一点!在我的真实数据集中我总是得到这个错误:subset_mydata_cast[subset_mydata_cast$Bait.Set=="HemoSeq1.0", baitset.FL.Ontogeny] *tmp*[[j]] : recursive indexing failed at level 2
    • 检查 baitset.FL.Ontogeny 是一个字符向量,并且 subset_mydata_cast 是一个 data.frame - 该错误消息似乎与子集不正确的数据结构有关
    • str(unique.FL.Ontogeny.baitset) chr [1:30] "BIRC3" "BRWD3" "CCND2" and str(df) 'data.frame': 304 obs。 130 个变量:$ Sample.Name:因子 w/314 个级别“1075”,“1104”,..:1 2 3 4 5 6 7 8 9 10 ... $ 个人:因子 w/314 个级别“1075”, "1104",..: 1 2 3 4 5 6 10 11 12 13 ... $ 项目:因子 w/2 个级别 "FL_discovery_GLSG",..: 1 1 1 1 1 1 1 1 1 1 ... $ 诱饵.Set : Factor w/ 2 个级别 "HemoSeq1.0","PLG_FL1.0": 2 2 2 2 2 2 2 2 2 2 ...
    • str(unique.FL.Ontogeny.baitset) 不一定是 str(baitset.FL.Ontogeny) ?
    • str(FL.Ontogeny.baitset) chr [1:30] "BIRC3" "BRWD3" "CCND2"
    猜你喜欢
    • 1970-01-01
    • 2021-12-13
    • 2018-06-29
    • 1970-01-01
    • 2021-12-08
    • 2015-10-21
    • 1970-01-01
    • 2021-11-09
    • 2018-02-13
    相关资源
    最近更新 更多