跨国 ID 重复的虚拟指标
Dummy indicator for cross country ID repetitions
这是我的问题:我有一个 table 与 isin 和国家,像这样:
ISIN COUNTRY
XX0001 ITALY
XX0002 FRANCE
XX0003 ITALY
XX0001 FRANCE
XX0002 ITALY
XX0004 FRANCE
我想创建一个新列,如果两个国家/地区出现相同的名称,则指标取值为 1,否则为 0。
ISIN COUNTRY INDICATOR
XX0001 ITALY 1
XX0002 FRANCE 1
XX0003 ITALY 0
XX0001 FRANCE 1
XX0002 ITALY 1
XX0004 FRANCE 0
我在 Tibco Spotfire 工作,它也适用于原生 R 语言。
数据
df1 <- structure(list(ISIN = c("XX0001", "XX0002", "XX0003", "XX0001", "XX0002", "XX0004"),
COUNTRY = c("ITALY", "FRANCE", "ITALY", "FRANCE", "ITALY", "FRANCE")),
.Names = c("ISIN", "COUNTRY"), class = "data.frame",
row.names = c(NA, -6L))
我们可以试试duplicated
df1$INDICATOR <- as.integer(duplicated(df1$ISIN)|!duplicated(df1$COUNTRY))
df1$INDICATOR
#[1] 1 1 0 1 1 0
或使用data.table
library(data.table)
setDT(df1)[, INDICATOR := +(uniqueN(COUNTRY)>1) , ISIN]
这是我的问题:我有一个 table 与 isin 和国家,像这样:
ISIN COUNTRY
XX0001 ITALY
XX0002 FRANCE
XX0003 ITALY
XX0001 FRANCE
XX0002 ITALY
XX0004 FRANCE
我想创建一个新列,如果两个国家/地区出现相同的名称,则指标取值为 1,否则为 0。
ISIN COUNTRY INDICATOR
XX0001 ITALY 1
XX0002 FRANCE 1
XX0003 ITALY 0
XX0001 FRANCE 1
XX0002 ITALY 1
XX0004 FRANCE 0
我在 Tibco Spotfire 工作,它也适用于原生 R 语言。
数据
df1 <- structure(list(ISIN = c("XX0001", "XX0002", "XX0003", "XX0001", "XX0002", "XX0004"),
COUNTRY = c("ITALY", "FRANCE", "ITALY", "FRANCE", "ITALY", "FRANCE")),
.Names = c("ISIN", "COUNTRY"), class = "data.frame",
row.names = c(NA, -6L))
我们可以试试duplicated
df1$INDICATOR <- as.integer(duplicated(df1$ISIN)|!duplicated(df1$COUNTRY))
df1$INDICATOR
#[1] 1 1 0 1 1 0
或使用data.table
library(data.table)
setDT(df1)[, INDICATOR := +(uniqueN(COUNTRY)>1) , ISIN]