إعادة تشكيل البيانات مع العدد [مكررة]
سؤال
لدي مجموعة بيانات وأريد إعادة تشكيلها باستخدام الحزمة reshape2 من R، ولكنني أتلقى هذا الخطأ:
Aggregation function missing: defaulting to length
هذا هو رأس () بياناتي:
cat_one customer valor
cama A 1
cama B 1
cama C 1
mesa D 1
mesa A 1
mesa A 1
وأريد إعادة تشكيلها بهذا الشكل، مع وجود عدد بين المتغيرين:
customer cama mesa
A 1 0
B 2 ...
C
D ... ...
هذا هو الكود الخاص بي:
dcast(dados_teste, cat_one ~ customer, value.var = 'valor')
وأنا أتبع هذا الآخر سؤال, ، لكن نفس الحل لا يعمل معي.
المحلول
لقد قمت بخلط LHS و RHS في الصيغة.
يحاول:
library(reshape2)
dcast(dados_teste, customer ~ cat_one, value.var = "valor")
# Aggregation function missing: defaulting to length
# customer cama mesa
# 1 A 1 2
# 2 B 1 0
# 3 C 1 0
# 4 D 0 1
"الخطأ" الذي تشير إليه هو في الواقع مجرد خطأ warning
يخبرك أنه يقوم فقط بحساب عدد القيم - وليس تطبيق أي وظيفة أخرى.لذا، في هذه الحالة، الأمر مقبول تمامًا.
إذا كنت تريد التخلص منه، حدد fun.aggregate = length
.
dcast(dados_teste, customer ~ cat_one,
value.var = "valor", fun.aggregate = length)
إذا كنت تبحث عن عمودين فقط، فيمكنك أيضًا الاطلاع عليهما table
:
as.data.frame.matrix(table(dados_teste[c(2, 1)]))
# cama mesa
# A 1 2
# B 1 0
# C 1 0
# D 0 1
لا تنتمي إلى StackOverflow