小编the*_*ail的帖子

添加一列排名

我有一些数据:

test <- data.frame(A=c("aaabbb",
"aaaabb",
"aaaabb",
"aaaaab",
"bbbaaa")
)
Run Code Online (Sandbox Code Playgroud)

等等.所有元素都是相同的长度,并且在我得到之前已经排序.

我需要建立一个新的行列,"第一","第二","第三",之后的任何内容都可以留空,并且需要考虑关系.所以在上面的例子中,我想获得以下输出:

   A       B
 aaabbb  First
 aaaabb  Second
 aaaabb  Second
 aaaaab  Third
 bbbaaa
 bbbbaa  
Run Code Online (Sandbox Code Playgroud)

我查看了rank()和其他一些使用它的帖子,但我无法让它去做我想要的.

r ranking

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

R重新编码变量 - 意外的INCOMPLETE_STRING

我试图在R中重新编码一个因子变量并使用以下代码:

library(car)
napier_captureComplexity=recode(napier$a_SpatialConnectivity,"'1 - Very simple and clear:     no diagrams, single sheets'=1;'2 - Reasonably simple: some simple diagrams or second sheets'=2;'3 - Reasonably complex: multiple diagrams or sheets but can be followed'=3;'4 - Moderately complex: multiple diagrams and sheets'=4;'5 - Very complex'=5;",as.factor.result=FALSE)
Run Code Online (Sandbox Code Playgroud)

并收到以下错误消息:

Error in parse(text = range[[1]][1]) : <text>:1:1: unexpected INCOMPLETE_STRING 1: '4 - Moderately complex
Run Code Online (Sandbox Code Playgroud)

低于数字4的^

我不确定是什么导致这种情况,我想知道:通过代码,但我没有使用c(),并且代码在数据集中具有类似字符串值的其他因素上执行得很好.

任何帮助表示赞赏!

r r-car

6
推荐指数
2
解决办法
5459
查看次数

重命名包含空格的列时,dplyr rename_会产生错误

rename_ 按预期用于非病理列名称

%>% rename_(foo = 'testcol')
Run Code Online (Sandbox Code Playgroud)

但是,如果我想重命名一个有空格的列呢?

%>% rename_(foo = 'test col')
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息:

Error in parse(text = x) (from #12) : <text>:1:6: unexpected symbol
Run Code Online (Sandbox Code Playgroud)

我可以使用make.names但是没有办法在没有额外步骤的情况下重命名列吗?

r dplyr

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

通过时间计算相邻像素的平均相关性

我有一堆4个栅格.我想要一个像素和它的8个邻居之间的平均时间相关性.

一些数据:

library(raster)  

r1=raster(matrix(runif(25),nrow=5))
r2=raster(matrix(runif(25),nrow=5))
r3=raster(matrix(runif(25),nrow=5))
r4=raster(matrix(runif(25),nrow=5))
s=stack(r1,r2,r3,r4)
Run Code Online (Sandbox Code Playgroud)

所以对于位置x的像素,在NE,E,SE,S等位置有8个邻居,我想要平均值

cor(x,NE)
cor(x,E)
cor(x,SE)
cor(x,S)
cor(x,SW)
cor(x,W)
cor(x,NW)
cor(x,N)
Run Code Online (Sandbox Code Playgroud)

以及在结果栅格中保存在位置x的平均值.边缘单元将是NA,或者如果可能的话,标记用于计算与其接触的单元(3或5个单元)的平均相关性.谢谢!

r raster

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

根据日期字段和另一个字段删除 R 数据框中的重复行

R 新手,但学习处理 db 数据并碰壁。

我想根据两个条件从表中删除重复的行/观察:一个用户 ID 字段和一个日期字段,指示上次对用户进行更改的时间,因此是最新的日期行。

我的截断数据集如下所示:

UID    | DateLastChange
1      |  01/01/2016
1      |  01/03/2016
2      |  01/14/2015
3      |  02/15/2014
3      |  03/15/2016
Run Code Online (Sandbox Code Playgroud)

我想结束:

UID    | DateLastChange
1      |  01/03/2016
2      |  01/14/2015
3      |  03/15/2016
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用重复的或独特的,但它们似乎并没有完全接受选择性的能力。我可以设想构建一个具有唯一 UID 的新表的可能性,然后以某种方式离开连接以仅匹配最近的日期。

任何建议将不胜感激。斯科特

r date duplicates dataframe

6
推荐指数
2
解决办法
3317
查看次数

使用purrr和预定义函数添加多个输出变量

采用这个简单的数据集和函数(代表更复杂的问题):

x <- data.frame(a = 1:3, b = 2:4)
mult <- function(a,b,n) (a + b) * n
Run Code Online (Sandbox Code Playgroud)

使用base R Map我可以这样做以向量化方式添加2个新列:

ns <- 1:2
x[paste0("new",seq_along(ns))] <- Map(mult, x["a"], x["b"], n=ns)
x
#  a b new1 new2
#1 1 2    3    6
#2 2 3    5   10
#3 3 4    7   14
Run Code Online (Sandbox Code Playgroud)

purrr尝试通过pmap列表输出接近:

library(purrr)
library(dplyr)
x %>% select(a,b) %>% pmap(mult, n=1:2)
#[[1]]
#[1] 3 6
#
#[[2]]
#[1]  5 10
#
#[[3]]
#[1]  7 14
Run Code Online (Sandbox Code Playgroud)

我尝试pmap_dfr将此映射回新列时似乎错误了. …

r function purrr

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

用最近的gsubfn打破字符串插值?

最后一个例子用来工作,现在却没有.函数内部没有字符串插值?也许它与变量范围有关?有什么建议?

library(gsubfn)
#R.Version() # I'm using 2.15.0, just upgraded from 2.13.something.

### dumb example of a function
g <- function() {for (a in 1:2) { print(paste('is a', a)) }}
g()

### same thing, outside a function, using string interpolation
for (a in 1:2) { fn$print('is a $a') }
rm(a)

### and now string interpolation inside a function
h <- function() {for (a in 1:2) { fn$print('is a $a') }}
h()
Run Code Online (Sandbox Code Playgroud)

最后一个例子告诉我

Error in eval(expr, envir, enclos) : object 'a' not …
Run Code Online (Sandbox Code Playgroud)

debugging r string-interpolation gsub

5
推荐指数
0
解决办法
449
查看次数

R:在y轴上具有分钟和秒的箱线图

当我boxplot在R中以秒为单位测量一些数据时,如何将y轴的比例从秒改为分钟和秒?

例如,当我做这样的事情时:

data <- c(298, 507, 1008, 346)
boxplot(data)
Run Code Online (Sandbox Code Playgroud)

我得到一个boxploty轴从300到1000.我想在那里有"5:00"到"16:40",只需将秒转换为分钟和秒.

datetime r boxplot

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

以递归方式从多个列表中cbind项目

鉴于三个(或n列表):

one   <- list(a=1:2,b="one")
two   <- list(a=2:3,b="two")
three <- list(a=3:4,b="three")
Run Code Online (Sandbox Code Playgroud)

为了得到这个结果,cbindn列表中列出每个列表项的更有效方法是什么?

mapply(cbind,mapply(cbind,one,two,SIMPLIFY=FALSE),three,SIMPLIFY=FALSE)

$a
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    2    3    4

$b
     [,1]  [,2]  [,3]   
[1,] "one" "two" "three"
Run Code Online (Sandbox Code Playgroud)

当这工作好n23,但很快将成为可笑复杂.这有更有效的变化吗?我在SO上看过类似的问题,但一直在努力调整它们.

join r list cbind

5
推荐指数
2
解决办法
5682
查看次数

如何为我用 R 编写的函数创建帮助?

我想为我自己的功能创建帮助页面。所以如果我定义一个函数:例如:

myfunct <- function(x,y,z){...}
Run Code Online (Sandbox Code Playgroud)

如果我输入,?myfunct我会得到我给出的参数规格。

有没有办法做到这一点?

r function

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