我想先將矢量轉換爲轉換矩陣(我管理的)。作爲第二步,我想將結果函數應用於不同的受訪者完成不同任務的數據集。 因此,我希望得到一個嵌套在答覆者和任務中的列表。將轉換矩陣轉換爲列表列表
下面是一個例子的數據幀:
Data <- data.frame(
respondent = c(1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2),
task = c(1,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2),
acquisition = sample(1:5, replace = TRUE)
)
和這裏我的結果向量和函數,它獲取矢量和生成轉換矩陣:
result <- matrix(data = 0, nrow = 5, ncol = 5)
gettrans <- function(invec){
for (i in 1:length(invec)-1){
result[invec[i],invec[i+1]] <- result[invec[i], invec[i+1]] + 1
}
return(result)
}
現在,我得到一個扁平的結果與
with(Data,aggregate(acquisition,by=list(respondent=respondent,task=task),gettrans))
然而,我想看起來像這樣:
點$respondent
[1]$task[1]
result
$respondent
[1]$task[2]
result
...
我dlply發揮各地,但不能得到那個工作... 任何建議表示讚賞!
出於興趣,您爲什麼需要列表清單?在大多數情況下,單個列表將更容易與事後協同工作。 – 2012-02-15 09:50:02
我錯過了dlply中的總結聲明......謝謝!我沒有看到如何總結ans_as_list中的任務或選擇特定的受訪者(假設有更多)。所以我想列表清單會做的伎倆... – schultem 2012-02-15 10:48:56