0

我需要生成具有一些要求的 .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"

谢谢你的时间!

4

1 回答 1

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.

于 2013-09-10T12:30:29.923 回答