【问题标题】:How to write a text column contain digits separated by "," into a .csv file using R如何使用 R 将包含用“,”分隔的数字的文本列写入 .csv 文件
【发布时间】:2019-01-29 08:14:40
【问题描述】:

我有一个带有一列的数据框。它包含由“,”分隔的数字编号,其类型为 chr。 (我正在使用 R 和 Rstudio)

我将使用下面的代码将此数据框写入 .csv 文件,但它在文件中的每一行中都会发生很大变化。 请问我该怎么办?

write.csv(ds_transaction,"TransactionList.csv", row.names = T)

我希望数据框中的一行包含

23210084,23210108,23210095,531,23213016,23210119

我在 .csv 文件中有相同的行。但相反,我有

2,321,008,423,210,100,000,000,000,000,000,000,000,000,000

【问题讨论】:

  • 如何打开文件?如果您使用 Excel,您是否使用记事本等简单的文本编辑器检查文件的实际内容是什么?
  • 是的,在记事本中没问题。我意识到,当我写入 .csv 文件时,无论它是否发生变化。当我阅读它时,我们没有问题。这就是它在文件中的外观。所以我不需要做任何事情。谢谢。

标签: r csv data-cleaning data-munging


【解决方案1】:

首先,删除逗号,然后将其写入 CSV 后将其转换为数字,例如。

x = "2,321,008"
y = as.numeric((gsub(",","", x)))
write.csv(y,"TransactionList.csv", row.names = T)

如果你有一个数据框,比如df,而你的列是transaction,那么,在这种情况下,你可以试试这个

df$transaction = as.numeric((gsub(",","", df$transaction)))
write.csv(df,"TransactionList.csv", row.names = T)

【讨论】:

  • 1. OP 似乎不想转换为数字。 2.如果他们这样做,他们将失去浮点数的精度。
  • @Roland 1. 如果他愿意,他可以将它回传给角色。 2:as.numeric() 不会造成任何精度损失。
  • 你看到 OP 的字符串有多长了吗?当然,如果他们将这些转换为浮点数,就会有精度损失。事实上,它们已经表现出这种精度损失,这可能发生在用于打开文件的软件中。
  • 不,它对我不起作用。我意识到,当我写入 .csv 文件时,无论它是否更改。当我阅读它时,我们没有问题。这就是它在文件中的外观。所以我不需要做任何事情。谢谢。
  • @Z_DEV 你能更详细地解释你的问题吗?
【解决方案2】:

我意识到,当我写入 .csv 文件时,无论外观是否发生变化。当我在 R 中阅读它时,我们没有问题。这就是它在文件中的外观。所以我不需要做任何事情。谢谢大家。

【讨论】:

    猜你喜欢
    • 2021-01-17
    • 2018-12-01
    • 1970-01-01
    • 2016-05-30
    • 2015-11-01
    • 2011-02-07
    • 2017-03-17
    • 2013-07-12
    • 2019-05-11
    相关资源
    最近更新 更多