繁体   English   中英

在 R 数据框中创建基于逻辑的列

[英]Create a logic based column in R data frame

我正在尝试在我的df中逐行创建一个循环/函数或任何可以工作的方法,并根据其他两列的值给我一个新列。

例如,数据框如下所示:

V1 <- c('A','A','A','B','B','B')
V2 <- c('X','X','Y','Y','Z','Z')
df <- data.frame(V1,V2)
df

V1  V2
A   X           
A   X           
A   Y           
B   Y           
B   Z           
B   Z

第三列计算后的逻辑如下:

if V1 = A & V2 = X, then V3 = r
if V1 = B & V2 = X, then V3 = t
if V1 = A & V2 = Y, then V3 = n
if V1 = B & V2 = Y, then V3 = n
if V1 = A & V2 = Z, then V3 = x
if V1 = A & V2 = Z, then V3 = x

这将导致数据框看起来像这样:

V1  V2  V3
A   X   r       
A   X   t       
A   Y   n       
B   Y   n       
B   Z   x       
B   Z   x

为了避免ifelse()你可以试试这个。 另外,检查您的最终 output。

#Conditions
c1 <- df$V1 == 'A' & df$V2 == 'X'
c2 <- df$V1 == 'B' & df$V2 == 'X'
c3 <- df$V1 == 'A' & df$V2 == 'Y'
c4 <- df$V1 == 'B' & df$V2 == 'Y'
c5 <- df$V1 == 'A' & df$V2 == 'Z'
c6 <- df$V1 == 'A' & df$V2 == 'Z'

#Create variable

df$V3 <- NA

#Assign

df$V3[c1] <- 'r'
df$V3[c2] <- 't'
df$V3[c3] <- 'n'
df$V3[c4] <- 'n'
df$V3[c5] <- 'x'
df$V3[c6] <- 'x'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM