我知道这个问题非常简单并且已经得到了解答 - 我的问题是我是一个完整的初学者到R(我的意思是完整的初学者),所有的答案和解释我已发现有关此查询的内容比较复杂,需要比我目前更深入的了解R(并且有时间学习)。
我有一个大的csv数据集(500k +数据行),称为'overviewGenes',我需要创建一个新列并用'1'或'0'填充新列中的每个单元格,具体取决于相应行中另一列的值。
现有列'Gexact'在每行中包含“exact”或“non-specific”。我希望R创建列('BooleanExact'),对于每一行,如果Gexact列中的值为'exact',则输入'0',如果Gexact列中的值为'non',则输入'1' -具体'。
因此,下面是我希望它出现的方式:
Gexact BooleanExact
exact 0
exact 0
non-specific 1
exact 0
non-specific 1
像我说的那样,非常简单。我已经尝试在给出类似问题的答案中使用示例代码,但无论出于何种原因(可能是我对R的完全缺乏经验),它都没有奏效。我尝试过使用'for _ in ___'循环等,但它似乎不是正确的方法。
对于我应该用最简单的语言和方法执行此操作的代码的任何帮助,将不胜感激!
答案 0 :(得分:0)
我们可以使用比较运算符来创建逻辑向量,然后使用`as.integer
将其强制转换为二进制df1$BooleanExact <- as.integer(df1$Gexact != "exact")
df1
# Gexact BooleanExact
#1 exact 0
#2 exact 0
#3 non-specific 1
#4 exact 0
#5 non-specific 1
比较运算符
df1$Gexact != "exact"
返回逻辑向量TRUE / FALSE,其中TRUE表示不是&#34; exact&#34;对那些有&#34;确切&#34;
的人来说,这是错误的用as.integer
换行,将TRUE转换为1,将FALSE转换为0
df1 <- structure(list(Gexact = c("exact", "exact", "non-specific", "exact",
"non-specific")), .Names = "Gexact", row.names = c(NA, -5L),
class = "data.frame")