我需要生成具有一些要求的.dat文件,以便由特定软件进行分析。 .dat文件的格式应该是:在ID列中具有一定的固定宽度,并且一起显示项目响应值,而不显示分隔符。完全是这样的:
(ID) (i1i2i3...values)
1 1234
2 1234
3 1234
4 1234
...
2365 1234
我可以通过IDfixed <- sprintf("%04d", ID)
获取固定宽度字符,并在此代码中包含变量:
for(i in 0:5) {
for (j in 1:5) {
filename <- paste("Factor",j, "_", "Facet",i+1, "_", "ID", ".dat", sep="")
write.table(cbind(IDfixed, data[,c(2*i+1,2*i+2),j]), filename, col.names=F, row.names=F)
}
}
输出没有这些""
个字符 - 它必须与前一个表具有相同的格式。结果样本:
[,1] [,2] [,3]
[1,] "0001" "2" "1"
[2,] "0002" "2" "3"
[3,] "0003" "5" "5"
[4,] "0004" "3" "3"
[5,] "0005" "3" "5"
谢谢你的时间!
答案 0 :(得分:0)
试试这个:
# sample data
ID <- c(1, 11, 111, 1111)
# convert ID to character, pad with leading zeros to a fixed width of 4
IDfixed <- sprintf("%04d", ID)
IDfixed
# [1] "0001" "0011" "0111" "1111"
修改强>
write.table
的默认行为是“任何字符或因子列都将被双引号包围”(quote = TRUE
)。要避免将“ID”中的""
元素写入文件,请使用quote = FALSE
。