R数据表,如何创建新列,答案取决于DT中的另一列

问题描述 投票:0回答:1

嗨,我想创建一个新列,其答案基于我现有DT中的另一列。我想在数据表参数中使用函数以最大化效率。

smoked <- matrix(c("A","A","A","B","B","B","A","B","A"),ncol=3,byrow=TRUE)
colnames(smoked) <- c("Type","Name","cusip")
rownames(smoked) <- c("A","B","C")
smoked <- as.table(smoked)
smoked

[我将如何创建另一个在“名称”列中满足条件的情况下每次都响应“ B”的列。然后在每次不满足的情况下都为“非B”。

r datatable
1个回答
0
投票

假设您有一个data.table

library(data.table)

smoked <- data.table(Type=c("A", "B", "A"), Name=c("A", "B", "B"), cusip=c("A", "B", "A"))

# > smoked
#    Type Name cusip
# 1:    A    A     A
# 2:    B    B     B
# 3:    A    B     A

并且您想基于TypeName创建新列,然后

smoked$NewLine <- fifelse(smoked$Type == "A" & smoked$Name == "A", "B", "not B")

给你

> smoked
   Type Name cusip NewLine
1:    A    A     A       B
2:    B    B     B   not B
3:    A    B     A   not B
© www.soinside.com 2019 - 2024. All rights reserved.