gpt4 book ai didi

r - R中的条件

转载 作者:行者123 更新时间:2023-12-04 23:49:27 24 4
gpt4 key购买 nike

我不知道如何使这项工作?

我希望根据其他两列是否满足以下条件在数据框中创建一个新列:

如果 df$Cn_LCIS 和 df$Cn_ILC 都大于 '2' 打印 '0'

如果 df$CN_LCIS 和 df$Cn_ILC 都小于 '2' 打印 '0'

如果它们相同也打印'0'否则打印'1'

df

        Chromosome     Start       End Cn_ILC mCn_ILC Cn_LCIS mCn_LCIS both
chr1.1 chr1 0 11194349 2 1 2 1 0
chr1.2 chr1 102809740 104579163 2 1 3 1 1
chr1.3 chr1 104579163 121311799 2 1 2 1 0
chr1.4 chr1 11194349 11492125 2 1 3 1 1
chr1.5 chr1 11492125 71442329 2 1 2 1 0
chr1.6 chr1 144009053 157140292 1 1 1 1 0
chr1.7 chr1 157140292 243709339 2 1 1 1 0
chr1.8 chr1 243709339 244112662 3 1 3 1 0
chr1.9 chr1 244112662 249250621 3 1 3 1 0
chr1.10 chr1 71442329 72624878 2 1 3 1 1
chr1.11 chr1 72624878 102809740 2 1 4 1 1

不工作:
df$both <- ifelse(df$Cn_LCIS > 2 & df$Cn_ILC > 2, 0, ifelse (df$Cn_LCIS < 2 & df$Cn_ILC < 2, 0, ifelse (df$Cn_LCIS == 2 & df$Cn_LCIS == 2, 0, ifelse(df$Cn_ILC!=df$Cn_LCIS,1))))

最佳答案

compareTo2 <- function(LCIS, ILC) {
as.numeric(!((LCIS > 2 & ILC > 2) | (LCIS < 2 & ILC < 2) | (LCIS == ILC) ))
}

compareTo2(df$Cn_LCIS, df$Cn_ILC)
# [1] 0 1 0 1 0 0 1 0 0 1 1

如果您的数据很大,您可能需要尝试以下操作
library(data.table)

DT <- as.data.table(df)

## different syntax for data.table than data.frame
DT[, as.numeric(!((Cn_LCIS > 2 & Cn_ILC > 2) | (Cn_LCIS < 2 & Cn_ILC < 2) | (Cn_LCIS == Cn_ILC) )) ]

## ... or you can assign it as a column
DT[, compare_LCIS_ILC := as.numeric(!((Cn_LCIS > 2 & Cn_ILC > 2) | (Cn_LCIS < 2 & Cn_ILC < 2) | (Cn_LCIS == Cn_ILC) )) ]
DT
# Chromosome Start End Cn_ILC mCn_ILC Cn_LCIS mCn_LCIS both compare_LCIS_ILC
# 1: chr1 0 11194349 2 1 2 1 0 0
# 2: chr1 102809740 104579163 2 1 3 1 1 1
# 3: chr1 104579163 121311799 2 1 2 1 0 0
# 4: chr1 11194349 11492125 2 1 3 1 1 1
# 5: chr1 11492125 71442329 2 1 2 1 0 0
# 6: chr1 144009053 157140292 1 1 1 1 0 0
# 7: chr1 157140292 243709339 2 1 1 1 0 1
# 8: chr1 243709339 244112662 3 1 3 1 0 0
# 9: chr1 244112662 249250621 3 1 3 1 0 0
# 10: chr1 71442329 72624878 2 1 3 1 1 1
# 11: chr1 72624878 102809740 2 1 4 1 1 1

关于r - R中的条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26108082/

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