2016-11-30 9 views
0

の3つのリストの質問に連結してRで一意のIDを作成します学生から文字列

我々はそこにされたデータセットを持っている場合、どのように我々は、例えば、私はR

に思いユニークを作成してください州、郡、村の3つの変数。

そして私は、私は3地区の村や必要な状態のないが存在しない場合6は、その後の例はabc_1_1として、私は、

6 * 3 = 18であると思いますユニークな作成する必要がありますされていただきたいユニークな作成する必要がありますabc_1_2、abc_1_3、abc_2_1、abc_2_2、abc_2_3 ..など。

と仮定東デリー地区であり、3つの村があります。だから出力は東札幌delhi_1_1、東札del_1_1_2、東札幌delhi_1_3、その他の村では合計18個が作成されるはずです。

+2

説明の代わりにデータと予想される出力を追加してください。 – mtoto

+1

'unique()'データセットと 'paste()'は州、地区、村々を 'sep = '_''で結んでいますか? – janosdivenyi

+0

が追加されました。ユニークはすべての可能な組み合わせを得るよい方法です。 –

答えて

0

私の答えはここにあったが、よりエレガントな方法がある場合、私は、これはあなたが探しているものです。これ

http://rpubs.com/newajay/uniqueidsfrom3strings

states=c("UP","MP","Raj","Maha") 
districts=c("North","West","East","South") 
villages=c("1","2","3","4") 
newlist=NULL 
for (i in 1:length(states)){ 
    newlist=c(newlist,paste(states[i],"_",districts)) 
} 
newlist=gsub(" ","",newlist) 
newlist 
[1] "UP_North" "UP_West" "UP_East" "UP_South" "MP_North" 
[6] "MP_West" "MP_East" "MP_South" "Raj_North" "Raj_West" 
[11] "Raj_East" "Raj_South" "Maha_North" "Maha_West" "Maha_East" 
[16] "Maha_South" 
for (i in 1:length(newlist)){ 
    newlist=c(newlist,paste(newlist[i],"_",villages)) 
} 
newlist 
[1] "UP_North"  "UP_West"  "UP_East"  "UP_South"  
[5] "MP_North"  "MP_West"  "MP_East"  "MP_South"  
[9] "Raj_North"  "Raj_West"  "Raj_East"  "Raj_South"  
[13] "Maha_North"  "Maha_West"  "Maha_East"  "Maha_South"  
[17] "UP_North _ 1" "UP_North _ 2" "UP_North _ 3" "UP_North _ 4" 
[21] "UP_West _ 1" "UP_West _ 2" "UP_West _ 3" "UP_West _ 4" 
[25] "UP_East _ 1" "UP_East _ 2" "UP_East _ 3" "UP_East _ 4" 
[29] "UP_South _ 1" "UP_South _ 2" "UP_South _ 3" "UP_South _ 4" 
[33] "MP_North _ 1" "MP_North _ 2" "MP_North _ 3" "MP_North _ 4" 
[37] "MP_West _ 1" "MP_West _ 2" "MP_West _ 3" "MP_West _ 4" 
[41] "MP_East _ 1" "MP_East _ 2" "MP_East _ 3" "MP_East _ 4" 
[45] "MP_South _ 1" "MP_South _ 2" "MP_South _ 3" "MP_South _ 4" 
[49] "Raj_North _ 1" "Raj_North _ 2" "Raj_North _ 3" "Raj_North _ 4" 
[53] "Raj_West _ 1" "Raj_West _ 2" "Raj_West _ 3" "Raj_West _ 4" 
[57] "Raj_East _ 1" "Raj_East _ 2" "Raj_East _ 3" "Raj_East _ 4" 
[61] "Raj_South _ 1" "Raj_South _ 2" "Raj_South _ 3" "Raj_South _ 4" 
[65] "Maha_North _ 1" "Maha_North _ 2" "Maha_North _ 3" "Maha_North _ 4" 
[69] "Maha_West _ 1" "Maha_West _ 2" "Maha_West _ 3" "Maha_West _ 4" 
[73] "Maha_East _ 1" "Maha_East _ 2" "Maha_East _ 3" "Maha_East _ 4" 
[77] "Maha_South _ 1" "Maha_South _ 2" "Maha_South _ 3" "Maha_South _ 4" 
newlist=gsub(" ","",newlist) 
newlist 
[1] "UP_North"  "UP_West"  "UP_East"  "UP_South"  
[5] "MP_North"  "MP_West"  "MP_East"  "MP_South"  
[9] "Raj_North" "Raj_West"  "Raj_East"  "Raj_South" 
[13] "Maha_North" "Maha_West" "Maha_East" "Maha_South" 
[17] "UP_North_1" "UP_North_2" "UP_North_3" "UP_North_4" 
[21] "UP_West_1" "UP_West_2" "UP_West_3" "UP_West_4" 
[25] "UP_East_1" "UP_East_2" "UP_East_3" "UP_East_4" 
[29] "UP_South_1" "UP_South_2" "UP_South_3" "UP_South_4" 
[33] "MP_North_1" "MP_North_2" "MP_North_3" "MP_North_4" 
[37] "MP_West_1" "MP_West_2" "MP_West_3" "MP_West_4" 
[41] "MP_East_1" "MP_East_2" "MP_East_3" "MP_East_4" 
[45] "MP_South_1" "MP_South_2" "MP_South_3" "MP_South_4" 
[49] "Raj_North_1" "Raj_North_2" "Raj_North_3" "Raj_North_4" 
[53] "Raj_West_1" "Raj_West_2" "Raj_West_3" "Raj_West_4" 
[57] "Raj_East_1" "Raj_East_2" "Raj_East_3" "Raj_East_4" 
[61] "Raj_South_1" "Raj_South_2" "Raj_South_3" "Raj_South_4" 
[65] "Maha_North_1" "Maha_North_2" "Maha_North_3" "Maha_North_4" 
[69] "Maha_West_1" "Maha_West_2" "Maha_West_3" "Maha_West_4" 
[73] "Maha_East_1" "Maha_East_2" "Maha_East_3" "Maha_East_4" 
[77] "Maha_South_1" "Maha_South_2" "Maha_South_3" "Maha_South_4" 
1

を楽しみにして?

states=c("UP","MP") 
districts=c("North","South") 
villages=c("1","2") 
df <- data.frame(states = states, districts = districts, villages= villages) 
df1 <- expand.grid(df) 
#df1 
# states districts villages 
#1  UP  North  1 
#2  MP  North  1 
#3  UP  South  1 
#4  MP  South  1 
#5  UP  North  2 
#6  MP  North  2 
#7  UP  South  2 
#8  MP  South  2 

library(tidyr) 
unite(df1, new_col,states, districts, villages,sep="_") 
#  new_col 
#1 UP_North_1 
#2 MP_North_1 
#3 UP_South_1 
#4 MP_South_1 
#5 UP_North_2 
#6 MP_North_2 
#7 UP_South_2 
#8 MP_South_2 
3

私はあなたがこれで作業できると思います。

sapply(states, function(x) paste0(x, districts)) 

    UP  MP  Raj  Maha  
[1,] "UPNorth" "MPNorth" "RajNorth" "MahaNorth" 
[2,] "UPWest" "MPWest" "RajWest" "MahaWest" 
[3,] "UPEast" "MPEast" "RajEast" "MahaEast" 
[4,] "UPSouth" "MPSouth" "RajSouth" "MahaSouth"