2016-05-11 20 views
1

Hier ist mein Problem: Ich habe eine Tabelle mit isin und Länder haben, wie folgt aus:Dummy Indikator für Lang ID Wiederholungen

ISIN   COUNTRY 

XX0001  ITALY   
XX0002  FRANCE   
XX0003  ITALY   
XX0001  FRANCE   
XX0002  ITALY   
XX0004  FRANCE   

Ich möchte eine neue Spalte mit einem Indikator schaffen Wert unter 1, wenn die Derselbe Name erscheint in beiden Ländern, sonst 0.

ISIN   COUNTRY  INDICATOR 

XX0001  ITALY   1 
XX0002  FRANCE  1 
XX0003  ITALY   0 
XX0001  FRANCE  1 
XX0002  ITALY   1 
XX0004  FRANCE  0 

Ich arbeite in Tibco Spotfire, die auch mit nativer R-Sprache funktioniert.

Daten

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

Antwort

1

Wir mit duplicated

df1$INDICATOR <- as.integer(duplicated(df1$ISIN)|!duplicated(df1$COUNTRY)) 
df1$INDICATOR 
#[1] 1 1 0 1 1 0 

Oder data.table

mit versuchen können, es
library(data.table) 
setDT(df1)[, INDICATOR := +(uniqueN(COUNTRY)>1) , ISIN] 
+1

Die duplizierten Code zu arbeiten! Danke vielmals! – willpar