首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何为取自R中的字符向量的每个字符分配不同的值

如何为取自R中的字符向量的每个字符分配不同的值
EN

Stack Overflow用户
提问于 2014-07-06 10:06:49
回答 3查看 79关注 0票数 1

好的,我有一个行名的字符向量。

代码语言:javascript
复制
> row.names(champs)
      [1] " Aatrox"       " Ahri"         " Akali"        " Alistar"     
      [5] " Amumu"        " Anivia"       " Annie"        " Ashe"        
      [9] " Blitzcrank"   " Brand"        " Braum"        " Caitlyn"     
     [13] " Cassiopeia"   " Cho'Gath"     " Corki"        " Darius"      
     [17] " Diana"        " Dr. Mundo"    " Draven"       " Elise"       
     [21] " Evelynn"      " Ezreal"       " Fiddlesticks" " Fiora"       
     [25] " Fizz"         " Galio"        " Gangplank"    " Garen"       
     [29] " Gragas"       " Graves"       " Hecarim"      " Heimerdinger"
     [33] " Irelia"       " Janna"        " Jarvan IV"    " Jax"         
     [37] " Jayce"        " Jinx"         " Karma"        " Karthus"     
     [41] " Kassadin"     " Katarina"     " Kayle"        " Kennen"      
     [45] " Kha'Zix"      " Kog'Maw"      " LeBlanc"      " Lee Sin"     
     [49] " Leona"        " Lissandra"    " Lucian"       " Lulu"        
     [53] " Lux"          " Malphite"     " Malzahar"     " Maokai"      
     [57] " Master Yi"    " Miss Fortune" " Mordekaiser"  " Morgana"     
     [61] " Nami"         " Nasus"        " Nautilus"     " Nidalee"     
     [65] " Nocturne"     " Nunu"         " Olaf"         " Orianna"     
     [69] " Pantheon"     " Poppy"        " Quinn"        " Rammus"      
     [73] " Renekton"     " Rengar"       " Riven"        " Rumble"      
     [77] " Ryze"         " Sejuani"      " Shaco"        " Shen"        
     [81] " Shyvana"      " Singed"       " Sion"         " Sivir"       
     [85] " Skarner"      " Sona"         " Soraka"       " Swain"       
     [89] " Syndra"       " Talon"        " Taric"        " Teemo"       
     [93] " Thresh"       " Tristana"     " Trundle"      " Tryndamere"  
     [97] " Twisted Fate" " Twitch"       " Udyr"         " Urgot"       
    [101] " Varus"        " Vayne"        " Veigar"       " Vel'Koz"     
    [105] " Vi"           " Viktor"       " Vladimir"     " Volibear"    
    [109] " Warwick"      " Wukong"       " Xerath"       " Xin Zhao"    
    [113] " Yasuo"        " Yorick"       " Zac"          " Zed"         
    [117] " Ziggs"        " Zilean"       " Zyra"

我想给每个名字分配一个递增的数字,例如:

代码语言:javascript
复制
> Aatrox<-1
> Ahri<-2
> Akali<-3
> Aatrox
[1] 1
> Ahri
[1] 2
> Akali
[1] 3

但是,我不想输入每个名字,所以有没有类似这样的东西可以得到上面的结果:

代码语言:javascript
复制
a<-length(row.names(champs))
for (i in 1:a){row.names(champs)[i]<-i}
EN

回答 3

Stack Overflow用户

发布于 2014-07-07 12:02:14

像这样的东西?我刚刚对名字的向量应用了一个序列。这个例子是针对前16个的。

代码语言:javascript
复制
> champs <- c(" Aatrox", " Ahri", " Akali", " Alistar", " Amumu", " Anivia",  
              " Annie", " Ashe", " Blitzcrank", " Brand", " Braum", " Caitlyn",  
              " Cassiopeia", " Cho'Gath", " Corki", " Darius")  
> x <- seq_along(champs)
> names(x) <- champs
> x
#     Aatrox        Ahri       Akali     Alistar       Amumu      Anivia 
#          1           2           3           4           5           6 
#      Annie        Ashe  Blitzcrank       Brand       Braum     Caitlyn 
#          7           8           9          10          11          12 
# Cassiopeia    Cho'Gath       Corki      Darius 
#         13          14          15          16 
票数 1
EN

Stack Overflow用户

发布于 2014-07-06 10:32:19

尝试:

代码语言:javascript
复制
 set.seed(42)
 champs <- data.frame(HP=sample(250:350, 10,replace=TRUE), HP1=rnorm(10))

 row.names(champs)<- c("Aatrox","Ahri","Akali","Alistar","Amumu","Anivia","Annie","Ashe",
 "Blitzcrank","Brand")


list2env(split(champs, row.names(champs)),envir=.GlobalEnv)
 #<environment: R_GlobalEnv>
 Brand
 #       HP        HP1
 #Brand 321 -0.1333213

更新

使用相同的数据集

代码语言:javascript
复制
 list2env(split(1:nrow(champs), row.names(champs)),envir=.GlobalEnv)
 #<environment: R_GlobalEnv>

 Aatrox
 #[1] 1
 Ahri
 #[1] 2
票数 0
EN

Stack Overflow用户

发布于 2014-07-07 20:18:27

这种方法会有帮助吗?显然,将序列长度与您的champs长度相匹配

代码语言:javascript
复制
champs<- c("Aatrox","Ahri","Akali","Alistar","Amumu","Anivia","Annie","Ashe",
+                       "Blitzcrank","Brand")

paste(seq(1:10), champs, sep = " ")
 [1] "1 Aatrox"     "2 Ahri"       "3 Akali"      "4 Alistar"    "5 Amumu"      "6 Anivia"     "7 Annie"     
 [8] "8 Ashe"       "9 Blitzcrank" "10 Brand"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24592102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档