Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在现有3列的帮助下在R中创建新列_R - Fatal编程技术网

在现有3列的帮助下在R中创建新列

在现有3列的帮助下在R中创建新列,r,R,要使用现有的3列(等位基因2、等位基因1和A1)创建一个新列“非编码” 我希望满足的条件是: if allele_2 == A1 then non_coded = allele_1 if allele_2 != A1 then non_coded = allele_2 提前感谢, 拉德 好的,这就是数据的样子: 我尝试的代码: 我想要的是: SNPID chrom STRAND IMPUTED allele_2 allele_1 MAF CALL_RATE HET_R

要使用现有的3列(等位基因2、等位基因1和A1)创建一个新列“非编码”

我希望满足的条件是:

if allele_2 == A1 then non_coded = allele_1 

if allele_2 != A1 then non_coded = allele_2
提前感谢,

拉德

好的,这就是数据的样子: 我尝试的代码: 我想要的是:

SNPID        chrom STRAND IMPUTED allele_2 allele_1     MAF CALL_RATE HET_RATE
1  rs1000000    12    +       Y        A        G 0.12160   1.00000   0.2146
2 rs10000009     4    +       Y        G        A 0.07888   0.99762   0.1386

     HWP    RSQ  PHYS_POS A1 M1_FRQ M1_INFO M1_BETA  M1_SE    M1_P non_coded
1 1.0000 0.9817 125456933  A 0.1173  0.9452 -0.0113 0.0528 0.83090         G
2 0.1164 0.8354  71083542  A 0.9048  0.9017 -0.0097 0.0593 0.87000         G

正如Chase所说,使用
ifelse()
。我猜代码会变成:

non_coded <- ifelse(allele_2 == A1, allele_1, allele_2)

正如Chase所说,使用
ifelse()
。我猜代码会变成:

non_coded <- ifelse(allele_2 == A1, allele_1, allele_2)

由于您希望非_编码为两个值之一:

Hy_MVA$non_coded <- Hy_MVA$allele_2
Hy_MVA$non_coded[Hy_MVA$allele_2 == Hy_MVA$A1] <- Hy_MVA$allele_1[Hy_MVA$allele_2 == Hy_MVA$A1]

Hy_MVA$non_coded因为您希望non_coded是两个值之一:

Hy_MVA$non_coded <- Hy_MVA$allele_2
Hy_MVA$non_coded[Hy_MVA$allele_2 == Hy_MVA$A1] <- Hy_MVA$allele_1[Hy_MVA$allele_2 == Hy_MVA$A1]

Hy_MVA$非编码使用ifelse()定义条件,必要时可以嵌套它们。使用ifelse()定义条件,如果需要,您可以嵌套它们。我使用了以下代码,但得到了非编码的数值,而不是Allege_2和Allege_1的字符串内容Hy_MVA$non_coded@rad-为什么不使用1.)更新您的问题。在data.frame的前几行中,使用
dput()
,你尝试过的代码和得到的意外结果。这样回答你的问题会容易得多。我使用了下面的代码,但得到了非编码的数值,而不是Allege_2和Allege_1的字符串内容Hy_MVA$non_coded@rad-为什么不用1.)更新你的问题呢,你尝试过的代码和得到的意外结果。这样回答你的问题会容易得多。
A1 <- c("A","A","B")
allele_1 <- as.factor(c("A","C","C"))
allele_2 <- as.factor(c("A","B","B"))

non_coded <- ifelse(allele_2 == A1, as.character(allele_1), as.character(allele_2))
non_coded 
[1] "A" "B" "C"
Hy_MVA$non_coded <- Hy_MVA$allele_2
Hy_MVA$non_coded[Hy_MVA$allele_2 == Hy_MVA$A1] <- Hy_MVA$allele_1[Hy_MVA$allele_2 == Hy_MVA$A1]