我可以强制R使用常规数字而不是使用e+10类似符号吗?我有:
1.810032e+09
# and
4
Run Code Online (Sandbox Code Playgroud)
在同一个向量内,并希望看到:
1810032000
# and
4
Run Code Online (Sandbox Code Playgroud)
我正在为一个老式程序创建输出,我必须使用编写一个文本文件cat.到目前为止工作正常,但我根本无法使用e+10那里的符号.
我正在尝试导入一个 csv 文件,该文件的字段Ts包含 ISO8601 时间戳值(例如 2014-12-01T18:54:22.973+0000)。
我发现您可以指定列的类别:
kd <- read.csv( "my.csv", colClasses=c( "Ts"="?" ))
Run Code Online (Sandbox Code Playgroud)
但是,我找不到如何声明时间戳字段。
问题:如何指定该字段是时间戳?
我导入了一个Excel文件并获得了这样的数据框
structure(list(A = structure(1:3, .Label = c("1.100", "2.300",
"5.400"), class = "factor"), B = structure(c(3L, 2L, 1L), .Label = c("1.000.000",
"500", "7.800"), class = "factor"), C = structure(1:3, .Label = c("200",
"3.100", "4.500"), class = "factor")), .Names = c("A", "B", "C"
), row.names = c(NA, -3L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)
我现在想这些转换chars到numeric甚至integer.但是,点字符(.)不是小数点,而是"千位分隔符"(它是德语).
如何正确转换数据框?
我试过这个:
df2 <- as.data.frame(apply(df1, 2, gsub, pattern = "([0-9])\\.([0-9])", replacement= "\\1\\2"))
df3 <- as.data.frame(data.matrix(df2))
Run Code Online (Sandbox Code Playgroud)
但是,apply似乎将每列转换为一系列因子.我可以阻止apply这样做吗?