على إطار البيانات: الكتابة إلى ملف وتسمية المتجه المرتفع في ص
سؤال
لدي بيانات تبدو هذه. والرمز الخاص بي أدناه ببساطة حساب بعض القيمة ويربط متجه الإخراج بإطارات البيانات الأصلية.
options(width=200)
args<-commandArgs(trailingOnly=FALSE)
dat <- read.table("http://dpaste.com/89376/plain/",fill=T);
problist <- c();
for (lmer in 1:10) {
meanl <- lmer;
stdevl <- (0.17*sqrt(lmer));
err_prob <- pnorm(dat$V4,mean=meanl, sd=stdevl);
problist <- cbind(problist,err_prob);
}
dat <- cbind(dat,problist)
#print(dat,row.names=F, column.names=F,justify=left)
# Why this breaks?
write(dat, file="output.txt", sep="\t",append=F);
لدي سؤالان حول ما ورد أعلاه:
ولكن لماذا تعطي وظيفة "الكتابة ()" أعلاه هذا الخطأ. هل هناك طريقة لإصلاحه؟
خطأ في CAT (قائمة (...) ، ملف ، SEP ، تعبئة ، تسميات ، إلحاق): لا يمكن معالجة الوسيطة 1 (اكتب "قائمة") عن طريق مكالمات "Cat": كتابة -> تنفيذ Cat تم إيقافها
تتم إضافة أسماء المتجه المشوش في إطار البيانات كـ "Errprob" لجميع الأعمدة العشرة الجديدة. هل هناك طريقة لتسميةهم مثل "errprob1" ، "errprob2" ، إلخ؟
المحلول
أولاً ، لا حاجة إلى نصف الكولون ، يعرف R أن نهاية الخط هي استراحة.
for (lmer in 1:10){
meanl <- lmer
stdevl <- (0.17*sqrt(lmer))
err_prob <- pnorm(dat$V4,mean=meanl, sd=stdevl)
problist <- cbind(problist,err_prob)
}
colnames(problist)<-paste("errorprob",1:10,sep="")
dat <- cbind(dat,problist)
write.table(dat, file="output.txt", sep="\t",append=F)
أعتقد أنك تبحث عن وظيفة الكتابة
استخدم وظيفة Colnames
نصائح أخرى
يمكنك استخدام الكتابة. هذا الأخير مناسب لطباعة المصفوفات (ولكنه قد يتطلب تحديد NCOL أو نقل مصفوفة الإدخال) ولكن الأول أكثر عمومية وأنا أستخدمه في كل من المصفوفات وإطارات البيانات.
يمكنك استبدال
err_prob <- pnorm (dat $ v4 ، mean = meanl ، sd = stdevl)
problist <- cbind (problist ، err_prob)
مع
assign(sprintf("err_prob%d",lmer),pnorm(dat$V4,mean=meanl, sd=stdevl))
problist <- eval(parse(text=sprintf("cbind(problist,err_prob%d)", lmer)))
الخط الأخير يوسع سلسلة الأحرف كتعبير ثم يقيمها. يمكنك ذلك بدلاً من ذلك
colnames(problist) <- sprintf("err_prob%d",1:10)
خلفي