Таблица данных R, как создать новый столбец, где ответ зависит от другого столбца в DT - PullRequest
0 голосов
/ 29 мая 2020

Привет, я хочу создать новый столбец, ответ на который основан на другом столбце в моем Существующем ОУ. Я хотел бы использовать функции в параметре таблицы данных для максимальной эффективности.

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» каждый раз, когда условие выполняется в столбце «name». ., а затем "не Б" на всякий случай, когда это не так.

1 Ответ

1 голос
/ 29 мая 2020

Предположим, у вас есть 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

и вы хотите создать новый столбец на основе Type и Name, затем

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
...