如何编辑R中csv中列中的所有值?

时间:2016-04-29 04:52:47

标签: r csv substitution

我有一个时间序列数据,其中包含一列中的货币数据。数据中有“$”符号。如何从货币值中删除所有$。

我的数据:

        Date Dividend dat
1 1980-12-23   $0.001  26
2 1981-03-24   $0.001  27
3 1981-06-16   $0.001  28
4 1981-08-31   $0.001  29
5 1981-10-05   $0.003  30
6 1982-03-23   $0.001  31

我想要这样的数据:

        Date Dividend dat
1 1980-12-23   0.001  26
2 1981-03-24   0.001  27
3 1981-06-16   0.001  28
4 1981-08-31   0.001  29
5 1981-10-05   0.003  30
6 1982-03-23   0.001  31

2 个答案:

答案 0 :(得分:1)

带有sub

fixed=TRUE会将一个文字字符串替换为另一个字符串。您需要fixed=TRUE,因为$是一个特殊字符,在正则表达式中有意义(它表示字符串的结尾)。

transform使命令的语法更好一些。 transform不会改变数据框,因此您需要使用返回值,可能会将其分配回原始变量。

transform(d, Dividend = sub('$', '', Dividend, fixed=TRUE))
        Date Dividend dat
1 1980-12-23    0.001  26
2 1981-03-24    0.001  27
3 1981-06-16    0.001  28
4 1981-08-31    0.001  29
5 1981-10-05    0.003  30
6 1982-03-23    0.001  31

答案 1 :(得分:0)

使用gsubfixed=TRUE一起使用,如@Mathew所述。

ginidata <- read.table(text = "Date Dividend dat
1 1980-12-23   $0.001  26
2 1981-03-24   $0.001  27
3 1981-06-16   $0.001  28
4 1981-08-31   $0.001  29
5 1981-10-05   $0.003  30
6 1982-03-23   $0.001  31")
ginidata$Dividend <- gsub("$","",ginidata$Dividend, fixed = TRUE)

ginidata
#         Date Dividend dat
# 1 1980-12-23    0.001  26
# 2 1981-03-24    0.001  27
# 3 1981-06-16    0.001  28
# 4 1981-08-31    0.001  29
# 5 1981-10-05    0.003  30
# 6 1982-03-23    0.001  31