在R中,我想转换
t1 <- c('this.text', 'next.text')
"this.text" "next.text"
Run Code Online (Sandbox Code Playgroud)
至
'ThisText' 'NextText'
Run Code Online (Sandbox Code Playgroud)
我试过了
gsub('\\..', '', t1)
Run Code Online (Sandbox Code Playgroud)
但这给了我
"thisext" "nextext"
Run Code Online (Sandbox Code Playgroud)
因为在这段时间之后它不会取代这封信.
可能真的很容易,但我无法解决.
在下面的示例中,我希望能够通过使用鼠标单击(或键盘输入)来控制何时进入下一个绘图
for (i in 1:5){
plot(1:i)
Sys.sleep(1)
#add something here that requests mouse click to proceed
}
Run Code Online (Sandbox Code Playgroud)
这可能吗?X11()帮助文件中有一个设置为"clickToConfirm",但我无法解决它的问题.
能够使用箭头键在图中来回滚动对我来说也很有帮助.这可能吗?
目前,如果我需要查看大量的图表,我将它们输出到一个大的.pdf文件中并在那里滚动它们,但这有点麻烦.
谢谢
汤姆
我有一些字符向量,其中包含各种格式的日期
dates <- c("23/11/12", "20/10/2012", "22/10/2012" ,"23/11/12")
Run Code Online (Sandbox Code Playgroud)
我想将这些转换为日期.我从lubridate包中尝试过非常好的dmy,但这不起作用:
dmy(dates)
[1] "0012-11-23 UTC" "2012-10-20 UTC" "2012-10-22 UTC" "0012-11-23 UTC"
Run Code Online (Sandbox Code Playgroud)
它将/ 12年视为0012.
所以我现在尝试使用正则表达式来选择每种类型,并使用as.Date()单独转换为日期.但是我试图选择dd/mm/yy的正则表达式不起作用.
dates[grep('[0-9]{2}/[0-9]{2}/[0-9]{2,2}', dates)]
Run Code Online (Sandbox Code Playgroud)
回报
[1] "23/11/12" "20/10/2012" "22/10/2012" "23/11/12"
Run Code Online (Sandbox Code Playgroud)
我认为{2,2}应该得到正好2个数字,而不是所有数字.我不是很擅长正则表达,所以任何帮助将不胜感激.
谢谢
编辑
我实际拥有的是三种不同类型的日期,如下所示
dates <- c("23-Jul-2013", "23/11/12", "20/10/2012", "22/10/2012" ,"23/11/12")
Run Code Online (Sandbox Code Playgroud)
我想将这些转换为日期
parse_date_time(dates,c('dmy'))
Run Code Online (Sandbox Code Playgroud)
给我
[1] "2013-07-23" "0012-11-23" "2012-10-20" "2012-10-22" "0012-11-23"
Run Code Online (Sandbox Code Playgroud)
然而,这是错误的,0012应该是2012年.我想(一个相当简单的)解决方案.
我现在拥有的一个解决方案(感谢@plannapus)是使用正则表达式我实际上最终创建了这个函数,因为我仍然得到一些情况,其中rubridate方法将12变为0012
asDateRegex <- function(dates,
#selects strings from the vector dates using regexes and converts these to Dates
regexes = c('[0-9]{2}/[0-9]{2}/[0-9]{4}', #dd/mm/yyyy
'[0-9]{2}/[0-9]{2}/[0-9]{2}$', #dd/mm/yy
'[0-9]{2}-[[:alpha:]]{3}-[0-9]{4}'), #dd-mon-yyyy
orders = 'dmy',
...){
require(lubridate) …Run Code Online (Sandbox Code Playgroud)