通过连接三个字符串列表在R中创建唯一id

通过连接三个字符串列表在R中创建唯一id,r,string,R,String,学生提出的问题 我们如何在R中创建一个独特的I'd 例如,如果我们有数据集,其中有3个变量:州、地区和村庄 我需要创建唯一的I'd如果一个地区有3个村庄,要求的州数是6,那么需要创建唯一的I'd是6*3=18 例如,abc_1_1、abc_1_2、abc_1_3、abc_2_1、abc_2_2、abc_2_3。。等等 范例 假设东德里是一个地区,有3个村庄。所以输出应该是东德里1、东德里1、东德里2、东德里1、东德里3,一个村庄如此,其他村庄如此,总共18个我应该被创建。我的答案在这里,但如果有

学生提出的问题

我们如何在R中创建一个独特的I'd

例如,如果我们有数据集,其中有3个变量:州、地区和村庄

我需要创建唯一的I'd如果一个地区有3个村庄,要求的州数是6,那么需要创建唯一的I'd是6*3=18

例如,abc_1_1、abc_1_2、abc_1_3、abc_2_1、abc_2_2、abc_2_3。。等等

范例


假设东德里是一个地区,有3个村庄。所以输出应该是东德里1、东德里1、东德里2、东德里1、东德里3,一个村庄如此,其他村庄如此,总共18个我应该被创建。

我的答案在这里,但如果有更优雅的方式,我期待它


我的答案在这里,但如果有更优雅的方式,我期待它


这就是你要找的吗

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
states=c(“向上”、“向上”)
地区=c(“北部”、“南部”)
村庄=c(“1”、“2”)

这就是你要找的吗

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
states=c(“向上”、“向上”)
地区=c(“北部”、“南部”)
村庄=c(“1”、“2”)

df我想你可以用这个

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"

我想你可以用这个

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"

请添加示例数据和预期输出,而不是说明。
unique()
数据集和
paste()
将州、区和村庄与
sep='.
一起添加。unique是获取所有可能组合的好方法参见
?交互
——类似于
级别(交互(州、区、村、sep=“”)
请添加示例数据和预期输出,而不是描述。
unique()
数据集和
粘贴()
状态,添加了具有
sep='.'
的地区和村庄。unique是获得所有可能组合的好方法参见
?交互
——类似于
级别(交互(州、区、村、sep=“”)