我想使用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],而是我想要原始名称中的实际字母.我怎样才能做到这一点?
我有一个具有 (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 行;有人可以做一下速度测试吗?