问题描述
我正在处理字符值,需要将它们写出来。这是我的示例值的样子:
items <- c("A1","A2","A3","A4","A5")
group <- c(paste0("Items = ",paste0(items,collapse=","),";"),#Items
paste0(paste0("Codes(",items,") = 0(0),1(1)",collapse="; ",sep=""),#Codes
paste0(paste("Model(",") = 2PL",";"))
> group
[1] "Items = A1,A2,A3,A4,A5;"
[2] "Codes(A1) = 0(0),1(1); Codes(A2) = 0(0),1(1); Codes(A3) = 0(0),1(1); Codes(A4) = 0(0),1(1); Codes(A5) = 0(0),1(1);"
[3] "Model(A1) = 2PL; Model(A2) = 2PL; Model(A3) = 2PL; Model(A4) = 2PL; Model(A5) = 2PL;"
cat(group,file = "test.irtpro")
当我写出来的时候,一切都在一行上。但是,当结尾有;
时,我需要特别注意。所以写在输出文件中的期望输出应该是:
Items = A1,A5;
Codes(A1) = 0(0),1(1);
Codes(A2) = 0(0),1(1);
Codes(A3) = 0(0),1(1);
Codes(A4) = 0(0),1(1);
Codes(A5) = 0(0),1(1);
Model(A1) = 2PL;
Model(A2) = 2PL;
Model(A3) = 2PL;
Model(A4) = 2PL;
Model(A5) = 2PL;
关于如何实现这一目标的任何想法?
谢谢
解决方法
也许您可以尝试:
cat(unlist(strsplit(group,"(?<=;\\s)",perl = TRUE)),file = "test.irtpro",sep = "\n")
这将按分号分隔字符串(保留分号,但以后留空格),并在每次分隔时使用换行符\n
。
test.irtpro
Items = A1,A2,A3,A4,A5;
Codes(A1) = 0(0),1(1);
Codes(A2) = 0(0),1(1);
Codes(A3) = 0(0),1(1);
Codes(A4) = 0(0),1(1);
Codes(A5) = 0(0),1(1);
Model(A1) = 2PL;
Model(A2) = 2PL;
Model(A3) = 2PL;
Model(A4) = 2PL;
Model(A5) = 2PL;