已解析 html,已更改为数字并可能通过管道 (R),但一直收到错误的数字
parsed html, changed to numbers and possibly through piping (R) but keep getting wrong number
我正在尝试通过键入以下代码更改字符编号(字符数据类型)--> 数字编号;
> my.numbers<-c("10B","1M","1000","130T")
> step.one<-my.numbers[grep("B|M|T",my.numbers,value=F)]
> step.two<-gsub("B",1000000000,step.one)
> step.two<-gsub("M",1000000,step.two)
> step.two<-gsub("T",1000000000000,step.two)
> my.numbers[grep("B|M|T",my.numbers,value=F)]<-step.two
> my.numbers
[1] "101e+09" "11e+06" "1000" "1301e+12"
它有效,所以我在这里没有问题,但我试图通过管道使其“更好”;
> my.numbers<-c("10B","1M","1000","130T")
> my.numbers[grep("B|M|T",my.numbers,value=F)]<-gsub("B",1000000000,my.numbers) %>% gsub("M",1000000,) %>% gsub("T",1000000000000,)
Warning message:
In gsub(., "M", 1e+06, ) :
argument 'pattern' has length > 1 and only the first element will be used
> my.numbers
[1] "1e+12" "1e+12" "1000" "1e+12"
这个数字似乎发生了翻天覆地的变化。有什么建议吗?
使用.
引用前一个管道的值并将其传递给gsub
:
library(magrittr)
my.numbers<-c("10B","1M","1000","130T")
my.numbers <- gsub("B",1000000000,my.numbers) %>%
gsub("M",1000000, .) %>%
gsub("T",1000000000000, .)
my.numbers
#[1] "101e+09" "11e+06" "1000" "1301e+12"
我正在尝试通过键入以下代码更改字符编号(字符数据类型)--> 数字编号;
> my.numbers<-c("10B","1M","1000","130T")
> step.one<-my.numbers[grep("B|M|T",my.numbers,value=F)]
> step.two<-gsub("B",1000000000,step.one)
> step.two<-gsub("M",1000000,step.two)
> step.two<-gsub("T",1000000000000,step.two)
> my.numbers[grep("B|M|T",my.numbers,value=F)]<-step.two
> my.numbers
[1] "101e+09" "11e+06" "1000" "1301e+12"
它有效,所以我在这里没有问题,但我试图通过管道使其“更好”;
> my.numbers<-c("10B","1M","1000","130T")
> my.numbers[grep("B|M|T",my.numbers,value=F)]<-gsub("B",1000000000,my.numbers) %>% gsub("M",1000000,) %>% gsub("T",1000000000000,)
Warning message:
In gsub(., "M", 1e+06, ) :
argument 'pattern' has length > 1 and only the first element will be used
> my.numbers
[1] "1e+12" "1e+12" "1000" "1e+12"
这个数字似乎发生了翻天覆地的变化。有什么建议吗?
使用.
引用前一个管道的值并将其传递给gsub
:
library(magrittr)
my.numbers<-c("10B","1M","1000","130T")
my.numbers <- gsub("B",1000000000,my.numbers) %>%
gsub("M",1000000, .) %>%
gsub("T",1000000000000, .)
my.numbers
#[1] "101e+09" "11e+06" "1000" "1301e+12"