小编Col*_*lin的帖子

gsub只是模式的一部分

我想使用gsub来更正我的数据中的一些名称.我希望诸如"RJ"和"AJ"之类的名字在字母之间没有空格.

例如:

x <- "A. J. Burnett"
Run Code Online (Sandbox Code Playgroud)

我想使用gsub匹配他的名字的模式,然后删除空格:

gsub("[A-Z]\\.\\s[A-Z]\\.", "[A-Z]\\.[A-Z]\\.", x)
Run Code Online (Sandbox Code Playgroud)

但我得到:

[1] "[A-Z].[A-Z]. Burnett"
Run Code Online (Sandbox Code Playgroud)

显然,不是[AZ],而是我想要原始名称中的实际字母.我怎样才能做到这一点?

string r gsub

11
推荐指数
1
解决办法
4992
查看次数

R:需要用坐标计数填充矩阵(来自带有坐标列表的数据框,其中一些是重复的)

我有一个具有 (x,y) 坐标的事件列表,其中 x 的范围从 1 到 100,y 的范围从 1 到 86。每个坐标都有(通常有很多)重复项。我想用每个坐标的计数填充一个矩阵(实际上是一个数字网格)。我该怎么做呢?

现在,我最好的尝试是:

s=matrix(data=NA,nrow=n,ncol=k)
for(i in 1:n){
  for(j in 1:k){
    s[i,j]=nrow(subset(data,x_column==i & y_column==j))
  }
}
Run Code Online (Sandbox Code Playgroud)

这适用于小型(约 10,000 行)数据帧,但我想针对近 300 万行的数据帧运行它,而我的方法太慢了。

编辑(数据):

n=86;k=100;
x_column y_column
54          30
51          32
65          34
19          46
51          27
45          60
62          31
64          45
16          69
31          33
Run Code Online (Sandbox Code Playgroud)

多谢你们!

编辑:好吧,事实证明该程序的速度足以满足我的需求——我的工作区陷入了大量数据的泥潭,它减慢了我尝试做的所有事情。所以我的方法是有效的,但了解填充矩阵的替代方法是有好处的。我上传了前 10 行;有人可以做一下速度测试吗?

r coordinate

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

标签 统计

r ×2

coordinate ×1

gsub ×1

string ×1