我有数据,学生可以通过两个评分者对多个问题进行评分。每行包含以下变量:
....然后它会重复多个项目。
它看起来像这样:
Student_ID <- c(1:4)
Item1_first_rater_id <- c(1,2,1,2)
Item1_first_rating <- c(2,3,4,2)
Item1_second_rater_id <- c(2,3,2,3)
Item1_second_rating <- c(4,5,3,2)
Item2_first_rater_id <- c(4,2,5,1)
Item2_first_rating <- c(2,3,4,2)
Item2_second_rater_id <- c(6,7,2,3)
Item2_second_rating <- c(3,4,5,4)
wide <- data.frame(Student_ID, Item1_first_rater_id, Item1_first_rating,
Item1_second_rater_id, Item1_second_rating,
Item2_first_rater_id, Item2_first_rating,
Item2_second_rater_id, Item2_second_rating)
我需要像这样的长格式数据:
Student_ID <- c(1:4)
Item_number <- c(1,1,2,2)
Rater_id <- c(1:4)
Score <- c(2,3,4,5)
long <- data.frame(Student_ID, Item_number, Rater_id, Score)
关于如何重塑的任何想法?
感谢。
答案 0 :(得分:1)
您正在尝试做什么并不完全清楚(换句话说,您想要如何转换源数据)。这是一个猜测,至少可以让你更接近你想要的输出。
似乎“宽”数据集中的names
包含三组信息:(1)项目编号,(2)“时间”(第一或第二),以及(3)另一个变量(“评级”或“评价者”)。
我们可以使用melt
,colsplit
和dcast
来促进我们的重塑。
melt
数据集library(reshape2)
orignames <- names(wide) # Store the original names so we can replace them
names(wide) <- gsub("Item([0-9])_(.*)_(rater_id|rating)",
"\\1\\.\\2\\.\\3", names(wide))
# "melt" the dataset
m.wide <- melt(wide, id.vars="Student_ID")
head(m.wide)
# Student_ID variable value
# 1 1 1.first.rater_id 1
# 2 2 1.first.rater_id 2
# 3 3 1.first.rater_id 1
# 4 4 1.first.rater_id 2
# 5 1 1.first.rating 2
# 6 2 1.first.rating 3
colsplit
m.wide <- cbind(m.wide,
colsplit(m.wide$variable, "\\.",
c("Item", "Time", "Var")))
head(m.wide)
# Student_ID variable value Item Time Var
# 1 1 1.first.rater_id 1 1 first rater_id
# 2 2 1.first.rater_id 2 1 first rater_id
# 3 3 1.first.rater_id 1 1 first rater_id
# 4 4 1.first.rater_id 2 1 first rater_id
# 5 1 1.first.rating 2 1 first rating
# 6 2 1.first.rating 3 1 first rating
dcast
重塑数据dcast(m.wide, Student_ID + Item ~ Time + Var, value.var="value")
# Student_ID Item first_rater_id first_rating second_rater_id second_rating
# 1 1 1 1 2 2 4
# 2 1 2 4 2 6 3
# 3 2 1 2 3 3 5
# 4 2 2 2 3 7 4
# 5 3 1 1 4 2 3
# 6 3 2 5 4 2 5
# 7 4 1 2 2 3 2
# 8 4 2 1 2 3 4
切换左侧的内容以及~
右侧的内容会影响数据的“形状”。