0

私はこのデータフレームを持っています。各一意の部門を配置し、対応する名前を各一意の部門の下に配置したいと思います。ご覧のとおり、複数の部門があります。たとえば、最終的な説明は次のようになります。

Internet
    Public-Web
    Intranet
BackOffice
    Batch
    BackEnd
BackEnd
   WebLogic
   Oracle

dput(x)

structure(list(ID = c(1234L, 2345L, 6789L, 3456L, 7890L, 1987L
), Name = structure(c(5L, 3L, 2L, 1L, 6L, 4L), .Label = c("BackEnd", 
"Batch", "Intranet", "Oracle", "Public-Web", "WebLogic"), class = "factor"), 
    Dept = structure(c(3L, 3L, 2L, 2L, 1L, 1L), .Label = c("BackEnd", 
    "BackOffice", "Internet"), class = "factor")), .Names = c("ID", 
"Name", "Dept"), class = "data.frame", row.names = c(NA, -6L))

Rでこれを行う方法はありますか?

4

2 に答える 2

1

重複している可能性があると想定するため、次を使用しますunique

for(dept in unique(x$Dept)){
  print(dept)
  x2 <- subset(x,subset=Dept==dept)
  for(name in unique(x2$Name)){
    print(paste(sep="","  ",name))
  }
}

print必要なものは何でも交換してください。

于 2013-03-28T20:14:04.853 に答える
1

これを達成するために使用できますsplit

split(as.character(df$Name), df$Dept)

# $BackEnd
# [1] "WebLogic" "Oracle"  
# 
# $BackOffice
# [1] "Batch"   "BackEnd"
# 
# $Internet
# [1] "Public-Web" "Intranet"  

一意のエントリが必要な場合は、次のようにします。

df <- unique(df[, 2:3])
split(as.character(df$Name), df$Dept)
于 2013-03-28T19:49:26.337 に答える