我正在尝试将包含政治捐款信息的 csv 文件读入 R。据我了解,默认情况下,列作为因子导入,但我需要将数量列(数据集中的“CTRIB_AMT”)作为数字列导入,以便我可以运行各种不起作用的函数因素。该列被格式化为以“$”作为前缀的货币。
我最初使用一个简单的读取命令来导入文件:
contribs <- read.csv('path/to/file')
然后尝试将 CTRIB_AMT 从货币转换为数字:
as.numeric(as.character(sub("$","",contribs$CTRIB_AMT, fixed=TRUE)))
但这没有用。我试图用于 CTRIB_AMT 列的函数是:
vals<-sort(unique(dfr$CTRIB_AMT))
sums<-tapply( dfr$CTRIB_AMT, dfr$CTRIB_AMT, sum)
counts<-tapply( dfr$CTRIB_AMT, dfr$CTRIB_AMT, length)
查看相关问题here .
关于如何最初导入文件以便列是数字或导入后如何转换的任何想法?
最佳答案
我不确定如何直接读取它,但是一旦它进入,您就可以修改它:
> A <- read.csv("~/Desktop/data.csv")
> A
id desc price
1 0 apple $1.00
2 1 banana $2.25
3 2 grapes $1.97
> A$price <- as.numeric(sub("\\$","", A$price))
> A
id desc price
1 0 apple 1.00
2 1 banana 2.25
3 2 grapes 1.97
> str(A)
'data.frame': 3 obs. of 3 variables:
$ id : int 0 1 2
$ desc : Factor w/ 3 levels "apple","banana",..: 1 2 3
$ price: num 1 2.25 1.97
我认为这可能只是你潜艇中的一个失踪逃生。 $ 表示正则表达式中的行尾。\$ 是美元符号。但是你必须逃离逃生......
关于读取R中的csv文件,货币列为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7337824/