以下是基于第v2列排名的代码:
x <- data.frame(v1 = c(2,1,1,2), v2 = c(1,1,3,2))
x$rank1 <- rank(x$v2, ties.method='first')
Run Code Online (Sandbox Code Playgroud)
但我真的想根据v2和/或v1进行排名,因为v2中存在联系.如果不使用RPostgreSQL,我怎么能这样做?
在R中,我write.table()用来将文件写入具有长名称的目录中嵌入的位置。但是它的错误如下:
file(file,ifelse(append,“ a”,“ w”))中的错误:无法打开连接另外:警告消息:在file(file,ifelse(append,“ a”,“ w”))中:无法打开文件'data / production / Weekly_Prod_201407_Selling_Price_Snapshot_20140930_Median_Selling_Price_Map.csv':没有此类文件或目录
然后当我将文件名缩短为 Weekly_Prod.csv,它起作用了!因此,似乎长路径和长文件名导致R错误。
我对其进行了几次测试,发现路径+文件名的总长度限制为260个字符。也就是说,R大于等于261个字符时会出错。有办法解决这个问题吗?请帮忙。谢谢!
我有一个由 8 亿条记录聚合而成的频率表,我想知道是否可以使用包从频率表中计算一阶转移矩阵,这是不对称的,因为某些状态再也没有发生过。频率表的一个示例是:
library(data.table)
model.data <- data.table(state1 = c(3, 1, 2, 3), state2 = c(1, 2, 1, 2), Freq = c(1,2,3,4))
Run Code Online (Sandbox Code Playgroud)
model.data 看起来像这样:
| 状态 1 | 状态2 | n |
|---|---|---|
| 3 | 1 | 1 |
| 1 | 2 | 2 |
| 2 | 1 | 3 |
| 3 | 2 | 4 |
使用包 pollster,我可以计算比例表:
library(pollster)
crosstab(model.data, state1, state2, Freq)
Run Code Online (Sandbox Code Playgroud)
| 状态 1 | 1 | 2 | n |
|---|---|---|---|
| 1 | 0 | 100 | 2 |
| 2 | 100 | 0 | 3 |
| 3 | 20 | 80 | 5 |
但是,我正在寻找的对称转移矩阵是:
| 状态 1 | 1 | 2 | 3 | n |
|---|---|---|---|---|
| 1 | 0 | 100 | 0 | 2 |
| 2 | 100 | 0 | 0 | 3 … |
我正在寻找一个函数来连接R中的SQLDF中的两个字符串,其作用类似于paste(),但找不到任何字符串.这样做的原因是我想在连接两个数据帧时连接两列.而不是使用merge()来进行连接然后使用paste(),我有时想使用sqldf().
我需要从拥有1亿行的大数据框中删除重复项.我正在测试data.table是否可以帮助我.但是,在以下代码中,data.table中的unique()不会生成与data.frame的unique()相同的结果.data.table中的setkey中是否存在可能的错误?
library(data.table)
tmp <- data.frame(id=c(1000000128152, 1000000228976, 1000000235508, 1000000294933, 1000000311288, 1000000353770, 1000000441585, 1000000466482, 1000000473521,
1000000491353, 1000000497787, 1000000534948, 1000000589071, 1000000622890, 1000000658287, 1000000695865, 1000000731674, 1000000780659,
1000000818218, 1000000834389, 1000000877189, 1000000937770, 1000000937770, 1000000996135, 1000001061831, 1000001062057, 1000001065241,
1000001097542, 1000001122242, 1000001177167, 1000001194078, 1000001216323, 1000001232155, 1000001294998, 1000001361126, 1000001361126,
1000001389830, 1000001411284, 1000001415793, 1000001417557, 1000001485326, 1000001565513, 1000001624601, 1000001650282, 1000001681805,
1000001683548, 1000001683548, 1000001693445, 1000001693455, 1000001693462, 1000001693466, 1000001693490, 1000001693490, 1000001703493,
1000001703511, 1000001703518, 1000001703546, 1000001703554, 1000001703613, 1000001703644))
unique(tmp$id)
DT <- data.table(tmp)
setkey(DT, id)
DTU <- unique(DT)
DTU$id
Results from the unique(tmp$id):
[1] 1000000128152 …Run Code Online (Sandbox Code Playgroud)