我有一些数据:
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中重新编码一个因子变量并使用以下代码:
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(),并且代码在数据集中具有类似字符串值的其他因素上执行得很好.
任何帮助表示赞赏!
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但是没有办法在没有额外步骤的情况下重命名列吗?
我有一堆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 新手,但学习处理 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 的新表的可能性,然后以某种方式离开连接以仅匹配最近的日期。
任何建议将不胜感激。斯科特
采用这个简单的数据集和函数(代表更复杂的问题):
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将此映射回新列时似乎错误了. …
最后一个例子用来工作,现在却没有.函数内部没有字符串插值?也许它与变量范围有关?有什么建议?
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) 当我boxplot在R中以秒为单位测量一些数据时,如何将y轴的比例从秒改为分钟和秒?
例如,当我做这样的事情时:
data <- c(298, 507, 1008, 346)
boxplot(data)
Run Code Online (Sandbox Code Playgroud)
我得到一个boxploty轴从300到1000.我想在那里有"5:00"到"16:40",只需将秒转换为分钟和秒.
鉴于三个(或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)
为了得到这个结果,cbind在n列表中列出每个列表项的更有效方法是什么?
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)
当这工作好n是2或3,但很快将成为可笑复杂.这有更有效的变化吗?我在SO上看过类似的问题,但一直在努力调整它们.
我想为我自己的功能创建帮助页面。所以如果我定义一个函数:例如:
myfunct <- function(x,y,z){...}
Run Code Online (Sandbox Code Playgroud)
如果我输入,?myfunct我会得到我给出的参数规格。
有没有办法做到这一点?