用R中的因子循环

Mic*_*ael 0 loops r

因此,此代码Bone根据因子的值填充向量的值bonegrp.我想以更简洁的方式实现这一目标.

谢谢!

v <- dat$bonegrp=="Bone2"  
Bone[v] <- "Gast 1"  
v <- dat$Bonegrp=="Bone3"  
Bone[v] <- "Gast 2"  
v <- dat$Bonegrp=="Bone4"  
Bone[v] <- "Vert1"  
v <- dat$Bonegrp=="Bone5"  
Bone[v] <- "Vert2"  
v <- dat$Bonegrp=="Bone6"  
Bone[v] <- "Femur"  
v <- dat$Bonegrp=="Bone7"  
Bone[v] <- "Tibia"  
v <- dat$Bonegrp=="Bone8"   
Bone[v] <- "Meta."  
v <- dat$Bonegrp=="Bone9"  
Bone[v] <- "Phal."  
v <- dat$Bonegrp=="Bone10"  
Bone[v] <- "PCau."  
v <- dat$Bonegrp=="Bone11"  
Bone[v] <- "MCau."  
v <- dat$Bonegrp=="Bone12"  
Bone[v] <- "DCau.  
Run Code Online (Sandbox Code Playgroud)

42-*_*42- 6

如果Bonegrp中只有12个级别,那么您可以看到它是否有效(根据有关数据结构的其他信息进行编辑):

Bone <- c(NA, "Gast 1", "Gast 2", "Vert1", "Vert2", "Femur","Tibia", "Meta.", 
          "Phal.", "PCau.", "MCau.", "DCau.")[as.numeric(dat$Bonegrp)]
Run Code Online (Sandbox Code Playgroud)

它基本上是使用一个向量,并根据Bonegrp的数字等价物查找正确的字符串.您真的应该提供有关您的数据的更多信息.刚刚提供的代码通常是不够的.

  • 可以将[]运算符视为机枪的发射室,并且每个dat $ Bonegrp实例都会根据通过`[]`-chamber的特定项目符号的值触发选择向量的实例.是的,我知道.触发快乐的美国人.嘿,我甚至不拥有枪:-) (2认同)