有成千上万个答案,描述如何从广泛变为长时间并由特定变量组织。我不知道我不是在缠着我的头。 我需要组织最初作为评价者,obs,val1,val2等开始的行进入评价者IRR下的列。将数据重塑为基于R中变量的长列(针对IRR)
鉴于类似我的数据格式,可以在创建:
r1 <- c('bob', 'sally', "george", "bob", "sally", "george")
r2 <- c(1,1,1,2,2,2)
r3 <- c("bad", "good", "good", "good", "good", "bad")
r4 <- c("bad", "bad", "good", "good", "good", "bad")
df=data.frame(r1,r2,r3,r4)
df = setNames(df, c('rater','obs', 'val1', 'val2'))
我需要将数据组织成基于“评价者”列。凡是工作将是巨大的,特别是如果 'OBS'(观察数)可以保留,例如,obs1_val1,obs1_val2等
沿着线的东西:
dcast(df, obs ~ rater)
它创建:
obs bob george sally
1 1 bad good bad
2 2 good bad good
但是,这会聚合并删除val2的值。
相反,我需要沿着线的东西:
bob sally george
obs1_val1 bad good good
obs1_val2 bad bad good
obs2_val1 good good bad
obs2_val2 good good bad
寻找类似的responses,我看到的建议,melt
,然后dcast
[我真的不希望聚合 - 而只是在堆列]。
由于字符串val1和val2的应该考虑的因素我已经试过:
df$"val1" <- factor(df$val1, levels=c("bad","good"))
df$"val2" <- factor(df$val2, levels=c("bad","good"))
无任何影响。获取:
Aggregation function missing: defaulting to length
obs bob george sally
1 1 2 2 2
2 2 2 2 2
这是没有用的。
?
'dcast(melt(df,1 :2),变量+ obs〜rater)'或'dcast(熔化(df,1:2),obs +变量〜rater)''如果你想让它按'obs'排序 –
看着输出我不确定1:2选择什么。 ? – Donnied
前两栏 –