سؤال

أنا أستخدم strsplit في R لإضافة أسماء إلى boxplot ولكن هذا يعطيني خطأ.

strng <- "one%two%three"
tt <- strsplit(strng,"%",fixed=TRUE)

وثم

boxplot(param~grp,data=snp,horizontal=TRUE,names=tt)

هذه العوائد

ls = list(c("one", "two",  :
  'at' and 'labels' lengths differ, 3 != 1
Calls: boxplot ... boxplot.default -> do.call -> bxp -> do.call -> axis
Execution halted

تتطلب وسيطة الأسماء متجهًا وتقوم strsplit بإرجاع قائمة.هل هذه غير متوافقة؟

إذا فعلت

boxplot(param~grp,data=snp,horizontal=TRUE,names=c("on","two","three"))

ثم لا بأس.

شكرا جزيلا لمساعدتكم

هل كانت مفيدة؟

المحلول

يستخدم tt[[1]] أو unlist(tt) بدلاً من tt

boxplot(param~grp,data=snp,horizontal=TRUE,names=tt[[1]])

names الحجة تتوقع ناقل و tt هي قائمة، لذلك تحتاج إلى تمرير متجه وليس قائمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top