我一直试图找到一种简单的方法将输出格式化difftime为HH:MM:SS.ms.到目前为止,我还没有遇到任何让我感到惊讶的事情.
我确实编写了下面几乎可以做到的功能.限制是将数字表示为重要的单个数字.例如2小时,3分钟,4.5秒变为"2:3:4.5"而不是"02:03:04.5"
有人有更好的建议吗?
format.timediff <- function(start_time) {
diff = as.numeric(difftime(Sys.time(), start_time, units="mins"))
hr <- diff%/%60
min <- floor(diff - hr * 60)
sec <- round(diff%%1 * 60,digits=2)
return(paste(hr,min,sec,sep=':'))
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将新数据附加到已使用该dbWriteTable方法存在的MySQL表中.我在过去使用过它没有问题,但它现在失败了因为表已经存在.这是尽管使用overwrite=FALSE, append=TRUE,
代码:
full_sum_table <- 'mydb.summary'
dbWriteTable(conn=open_connection, name=full_sum_table, value=summary_data_final, overwrite=FALSE, append=TRUE, row.names=0)
Error in mysqlExecStatement(conn, statement, ...) :
RS-DBI driver: (could not run statement: Table 'summary' already exists)
[1] FALSE
Warning message:
In mysqlWriteTable(conn, name, value, ...) :
could not create table: aborting mysqlWriteTable
Run Code Online (Sandbox Code Playgroud)
第一次调用此代码可以正常工作,但后续调用失败.
任何想法将不胜感激.谢谢
环境:
R version 3.0.2
Packages: DBI (I was using RMySQL but it is not available for 3.0.2)
MySQL v5.6.14
OS: Windows Server 7
Run Code Online (Sandbox Code Playgroud) 我有一个包含一系列名称,事件和日期的表格.我创建了一个evt5_date与特定事件(evt5)相关的新字段' ' .
每个名称可以有多个事件,每个事件的时间记录在evt_date字段中.两个事件evt1,并evt2涉及到evt5.
我想将第一次出现的日期插入evt5到所有行evt1和evt2前面的行中evt5.如果没有evt5后evt1或evt2再保留该字段为空.
所有这些都必须为每个人完成name.有几千个不同的名字.我只在下面的数据中显示2
当前表数据 - evt5_date中没有值
name evt_date event evt5_date
name-1 2010-06-30 evt1
name-1 2009-10-30 evt5
name-1 2009-09-30 evt2
name-1 2009-06-30 evt5
name-1 2009-03-30 evt5
name-1 2009-02-28 evt2
name-1 2009-01-30 evt1
name-2 2005-05-30 evt2
name-2 2005-03-30 evt5
name-2 2005-01-30 evt1
Run Code Online (Sandbox Code Playgroud)
我希望它看起来如何 - evt5_date字段中的值
name evt_date event evt5_date
name-1 2010-06-30 …Run Code Online (Sandbox Code Playgroud) 我正在尝试将MySQL select语句中的一些数据写入运行Snow Leopard的Mac上的文件中.
select date_base, fractile_v2, gics, count(gvkey_iid)
from master
where fractile_v2 <= 15 and
fractile_v2 != 0
group by date_base, gics, fractile_v2
order by date_base, fractile_v2
limit 100000
INTO OUTFILE '/User/my-name/Desktop/gics_v2.csv'
FIELDS TERMINATED BY ',';
Run Code Online (Sandbox Code Playgroud)
不幸的是,这会产生以下错误:
错误代码:1.无法创建/写入文件'/Users/andrew/Desktop/gics_v2.csv'(错误代码:13)
我假设是一个权限问题.
当我'/User/my-name/Desktop/gics_v2.csv'用简单gics_v2.csv的语句替换完整的文件路径似乎运行.但是我不知道文件保存在哪里,我找不到它.
有人知道吗?任何人都可以建议我如何解决初始写入错误?我以root用户身份运行MySQL.
我有一个相当简单的data.frame(fract_data),我正在尝试排序,但当我应用该ORDER函数时,只返回第一行.不应该返回所有行吗?我应该如何使用它ORDER来返回所有行?
fract_data[order("date"),]
date code rank.ey rank.roce rank.combined rank.final fract
1 2005-01-31 ABC 1 8 9 4 3
Run Code Online (Sandbox Code Playgroud)
如下所示,有48行 fract_data
attributes(fract_data)
$names
[1] "date" "code" "rank.ey" "rank.roce" "rank.combined" "rank.final" "fract"
$class
[1] "data.frame"
$row.names
[1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 …Run Code Online (Sandbox Code Playgroud) 我有一个大的(1GB的cvs文件)季度财务数据集,我需要填写月度数据.每行都有公司标识符和日期戳,但不同的公司有不同的报告日期(3月,6月,9月,12月对2月,5月,8月,11月).
表:来源
Co. |Date |NPAT |Debt
A |31-Dec-09 |123 |4,000
B |29-Feb-10 |12 |300
A |31-Mar-10 |200 |4,500
B |31-May-10 |11 |200
A |30-Jun-10 |159 |4,300
C |30-Jun-10 |-30 |4
Run Code Online (Sandbox Code Playgroud)
在示例公司A中报告了3月,6月,9月和12月所以我需要将3月份的数字复制到4月和5月,6月复制到7月和8月,9月到10月以及11月和12月的数字复制到1月和2月.对于B公司,报告期为2月,5月,8月和11月.
使用上面的例子我需要的是:
表:目的地
Co. |Date |NPAT |Debt
A |31-Dec-09 |123 |4,000
A |31-Jan-10 |123 |4,000
A |29-Feb-10 |123 |4,000
B |29-Feb-10 |12 |300
A |31-Mar-10 |200 |4,500
B |31-Mar-10 |12 |300
A |30-Apr-10 |200 |4,500
B |30-Apr-10 |12 |300
A |31-May-10 |200 |4,500
....
Run Code Online (Sandbox Code Playgroud)
我已经使用内部联接创建了一个填充表,从而生成了所有公司和日期的唯一列表,因此我实际上从一个包含完整公司和日期组合列表的空表中盯着.但是我在努力从那里开始.
我正在使用mysql和R来完成这个项目,我很高兴能找到解决方案/建议.鉴于数据量我正在寻找一个相当有效的实现.
存在以下挑战:1 - 公司在整个时间段内都不存在,因此我不想无限期地(至多2个月)复制最终期间的结果.同样,在早期阶段会有没有数据的公司.2 - …