小编smz*_*smz的帖子

如何在R中一次按两列排列行?

以下是基于第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 rank dataframe

6
推荐指数
1
解决办法
4177
查看次数

Windows中的长路径/文件名使R中出现write.table()错误

在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个字符时会出错。有办法解决这个问题吗?请帮忙。谢谢!

r long-filenames

5
推荐指数
1
解决办法
3181
查看次数

是否有用于从频率表计算一阶转换矩阵的 R 包?

我有一个由 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 …

transition r matrix markov chain

3
推荐指数
1
解决办法
48
查看次数

如何在R中的SQLDF中连接字符串

我正在寻找一个函数来连接R中的SQLDF中的两个字符串,其作用类似于paste(),但找不到任何字符串.这样做的原因是我想在连接两个数据帧时连接两列.而不是使用merge()来进行连接然后使用paste(),我有时想使用sqldf().

string r sqldf

2
推荐指数
1
解决办法
5323
查看次数

data.table中的唯一错误地丢弃了一些值

我需要从拥有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)

r unique data.table

2
推荐指数
1
解决办法
91
查看次数

标签 统计

r ×5

chain ×1

data.table ×1

dataframe ×1

long-filenames ×1

markov ×1

matrix ×1

rank ×1

sqldf ×1

string ×1

transition ×1

unique ×1