Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何删除R中的$dollar符号_R_Symbols - Fatal编程技术网

如何删除R中的$dollar符号

如何删除R中的$dollar符号,r,symbols,R,Symbols,如何删除美元符号?看到数据了吗?我已经尝试了很多方法,但都没有效果 我将sales\u revenue列分隔为sales\u revenue\u A、sales\u revenue\u B、sales\u revenue\u C、sales\u revenue\u D。请参见图片 使用了类似于:as.numeric和gsub的函数,但我遇到了错误。这是我第一次使用R。这是一个dplyr解决方案,其中df是您的数据帧: df %>% mutate(across(starts_with(


如何删除美元符号?看到数据了吗?我已经尝试了很多方法,但都没有效果

我将sales\u revenue列分隔为sales\u revenue\u A、sales\u revenue\u B、sales\u revenue\u C、sales\u revenue\u D。请参见图片


使用了类似于:as.numeric和gsub的函数,但我遇到了错误。这是我第一次使用R。

这是一个
dplyr
解决方案,其中
df
是您的数据帧:

df %>% 
  mutate(across(starts_with("Sales"), ~gsub("\\$", "", .) %>% as.numeric))
mutate
创建一个新列,
cross(以(“Sales”)开头)
引用以“Sales”开头的列,而tilde
~
开始使用
gsub
函数,该函数将“$”的所有实例替换为零(即“”)

当然,如果要另存为新数据帧,则需要调用:

dfnew <- df %>% 
      mutate(across(starts_with("Sales"), ~gsub("\\$", "", .) %>% as.numeric))

您可以
gsub
应用于整个数据帧以替换
$
,这是一个regex元字符,因此需要使用
\
进行转义:

apply(df, 2, function(x) gsub("\\$", "", x))
根据一些模拟数据,得出以下结论:

df <- data.frame(
      v1 = c("$100", "$250", "$50.5"),
      v2 = c("$100/$222/$23/$111", "$2/$200/$111", "$1000/$100/$222/$23/$111")
)
df <- apply(df, 2, function(x) gsub("\\$", "", x))
df
     v1     v2                   
[1,] "100"  "100/222/23/111"     
[2,] "250"  "2/200/111"          
[3,] "50.5" "1000/100/222/23/111"

df我们可以在
base R

df[] <- lapply(df, gsub, pattern = "$", fixed = TRUE, replacement = "")

df[]请(1)将您的数据以文本形式发布,而不是截图;(2)告诉我们您尝试了什么以及发生了什么错误(以文本形式,而不是截图形式)OP noted
as.numeric
,很容易将其添加到
mutate
~stru replace(,“\\$,”)%>%as.numeric
(或
gsub
)或者将
gsub
fixed=T
一起使用,以便将美元符号视为文字美元。并解释这是由于
gsub
默认接受正则表达式,并且美元符号是一个特殊字符(在正则表达式中)这表示字符串的结尾…@andrew_reece@Abdessabour Mtk这两个要点都很好-自从OP请求后,我更新为添加
as.numeric
,并保留正则表达式转义,因为知道这一点很好,而且OP没有具体的请求。
df[] <- lapply(df, gsub, pattern = "$", fixed = TRUE, replacement = "")
df <- structure(list(v1 = c("$100", "$250", "$50.5"), v2 = c("$100/$222/$23/$111", 
"$2/$200/$111", "$1000/$100/$222/$23/$111")), class = "data.frame",
row.names = c(NA, 
-3L))