write.csv和read.csv如何保存数据格式?

时间:2017-03-29 14:55:17

标签: r format

我有一个数据框,其中包含大部分列为数字。然后我用这个命令写入csv文件

    df = read.csv("mydf.csv", header = F, sep = ",", stringsAsFactors=F,dec=".")

后来我用文件读取了文件:

   sapply(df, class)

然后我使用

检查数据格式
  private string encryptData(string data)
    {

        byte[] encKey = ASCIIEncoding.UTF8.GetBytes("pemgail9uzpgzl88");

        Rijndael aes = Rijndael.Create();
        aes.KeySize = 256;
        aes.BlockSize = 256;
        aes.Mode = CipherMode.CBC;
        aes.Padding = PaddingMode.PKCS7;
        aes.Key = encKey;

        ICryptoTransform crypto = aes.CreateEncryptor(aes.Key, aes.IV);
        byte[] txt = ASCIIEncoding.UTF8.GetBytes(data);
        byte[] cipherText = crypto.TransformFinalBlock(txt, 0, txt.Length);


        return Convert.ToBase64String(cipherText) + "&iv=" + Convert.ToBase64String(aes.IV); 
    }                  

所有列都变为字符。如果我不把stringsAsFactors = F, 所有列都变成了因子。 我可以稍后手动将列更改为数字。我只是想知道是否有一种方法可以在写入或读取csv文件时至少为大多数列保留数据格式。有更好的解决方案吗?

1 个答案:

答案 0 :(得分:2)

默认情况下,write.csv会包含标题,但是当您导入它们时,您会告诉R没有标题。这些标题可能是非数字的,会触发切换到字符。因此,要么关闭write.csv()中的标题,要么设置header=TRUE

中的read.csv()