我已经阅读了R中的等高线图(包括很多关于stackoverflow的提示)的页面和页面,但都没有成功。 这里是我的数据轮廓,包括添加一个卢旺达的地图(数据包括经度,纬度和雨的十四个值,如x,y和z): Lon Lat Rain 28.92 -2.47 83.4 29.02 -2.68 144 29.25 -1.67 134.7 29.42 -2.07 174.9 29.55 -1.58 151.5 29.57 -2.48 224.1 29.6 -1.5 254.3 29.72 -2.18 173.9 30.03 -1.95 154.8 30.05 -1.6 152.2 30.13 -1.97 126.2 30.33 -1.3 98.5 30.45 -1.81 145.5 30.5 -2.15 151.3 这里是我从stackoverflow尝试的代码: datr <- read.table("Apr0130precip.txt",header=TRUE,sep=",") x <- datr$x y […]
我试图制作一个条形图,从最高value的miRNA到最低的miRNAsorting。 为什么我的代码不工作? > head(corr.m) miRNA variable value 1 mmu-miR-532-3p pos 7 2 mmu-miR-1983 pos 75 3 mmu-miR-301a-3p pos 70 4 mmu-miR-96-5p pos 5 5 mmu-miR-139-5p pos 10 6 mmu-miR-5097 pos 47 ggplot(corr.m, aes(x=reorder(miRNA, value), y=value, fill=variable)) + geom_bar(stat="identity")
请考虑以下事项 $ R –vanilla > as.Date("01 Jan 2000") Error in charToDate(x) : character string is not in a standard unambiguous format 但是那个date显然是以一种标准的明确格式。 为什么错误信息? 更糟糕的是,一个模棱两可的date显然接受没有警告或错误,然后错误地阅读! > as.Date("01/01/2000") [1] "0001-01-20" 我在包含这个错误信息的[R]标签中search了28个其他的问题。 所有的解决scheme和解决方法都涉及指定格式,iiuc。 这个问题是不同的,因为我问无论如何定义了标准的明确的格式,它们可以改变吗? 每个人都可以得到这些消息还是只是我? 也许是语言环境相关? 换句话说,是否有比需要指定格式更好的解决scheme? 29个包含“标准明确格式”的问题 > sessionInfo() R version 2.15.2 (2012-10-26) Platform: x86_64-w64-mingw32/x64 (64-bit) locale: [1] LC_COLLATE=English_United Kingdom.1252 [2] LC_CTYPE=English_United Kingdom.1252 [3] LC_MONETARY=English_United Kingdom.1252 [4] […]
我想写一个调用plot()和legend()的函数,如果用户可以指定一些额外的参数,然后传递给plot()或legend() ,这将是理想的。 我知道我可以实现这两个function之一使用… : foo.plot <- function(x,y,…) { plot(x,y,…) legend("bottomleft", "bar", pch=1) } foo.plot(1,1, xaxt = "n") 这通过xaxt = "n"来绘制。 但是有没有办法例如传递title = "legend"给legend()调用,而不需要预先指定函数头中的参数? 从接受的答案更新:我认为,VitoshKa的方式是最高雅的完成我想要的。 然而,我还有一些小问题需要解决,直到按照我的意愿工作。 起初,我检查了哪些参数要传递给legend ,哪些要plot 。 为此,第一步是查看legend哪些参数是legend唯一的,而不是图和/或参数的一部分: legend.args <- names(formals(legend)) plot.args <- c(names(formals(plot.default)), names(par())) dput(legend.args[!(legend.args %in% plot.args)]) 我在这里使用dput() ,因为plot.args <- c(names(formals(plot.default)), names(par()))总是调用一个我不想要的新的空图。 所以,我在下面的函数中使用了dput的输出。 接下来,我必须处理重叠的参数(通过dput(largs.all[(largs.all %in% pargs.all)]) )获取它们。 对于一些这是微不足道的(例如, x , y )其他人得到传递给两个函数(例如, pch […]
有没有一种更简单的方法来确保数据框的行按照我在下面的简短示例中实现的“目标”向量进行sorting? df <- data.frame(name = letters[1:4], value = c(rep(TRUE, 2), rep(FALSE, 2))) df # name value # 1 a TRUE # 2 b TRUE # 3 c FALSE # 4 d FALSE target <- c("b", "c", "a", "d") 这似乎有点太“复杂”,以完成工作: idx <- sapply(target, function(x) { which(df$name == x) }) df <- df[idx,] rownames(df) <- NULL df […]
我不明白为什么我得到这个错误消息。 > fixed <- data.frame("Type" = character(3), "Amount" = numeric(3)) > fixed[1, ] <- c("lunch", 100) Warning message: In `[<-.factor`(`*tmp*`, iseq, value = "lunch") : invalid factor level, NA generated > fixed Type Amount 1 <NA> 100 2 0 3 0
我有一个向量x,我想根据向量y中的值的顺序进行sorting。 这两个向量长度不一样。 x <- c(2, 2, 3, 4, 1, 4, 4, 3, 3) y <- c(4, 2, 1, 3) 预期的结果是: [1] 4 4 4 2 2 1 3 3 3
有很多关于取代NA值的post。 我知道可以用下面的表格/框架来replace新来港定居人士: x[is.na(x)]<-0 但是,如果我想限制它只有某些列呢? 让我给你看一个例子。 首先,我们从一个数据集开始。 set.seed(1234) x <- data.frame(a=sample(c(1,2,NA), 10, replace=T), b=sample(c(1,2,NA), 10, replace=T), c=sample(c(1:5,NA), 10, replace=T)) 这使: abc 1 1 NA 2 2 2 2 2 3 2 1 1 4 2 NA 1 5 NA 1 2 6 2 NA 5 7 1 1 4 8 1 1 NA 9 2 1 […]
在使用plyr我经常发现使用adply来标量函数是非常有用的,我必须将它应用到每一行。 例如 data(iris) library(plyr) head( adply(iris, 1, transform , Max.Len= max(Sepal.Length,Petal.Length)) ) Sepal.Length Sepal.Width Petal.Length Petal.Width Species Max.Len 1 5.1 3.5 1.4 0.2 setosa 5.1 2 4.9 3.0 1.4 0.2 setosa 4.9 3 4.7 3.2 1.3 0.2 setosa 4.7 4 4.6 3.1 1.5 0.2 setosa 4.6 5 5.0 3.6 1.4 0.2 setosa 5.0 6 5.4 […]
当突变是有条件的(取决于某些列值的值)时,可以使用mutate吗? 这个例子有助于展示我的意思。 structure(list(a = c(1, 3, 4, 6, 3, 2, 5, 1), b = c(1, 3, 4, 2, 6, 7, 2, 6), c = c(6, 3, 6, 5, 3, 6, 5, 3), d = c(6, 2, 4, 5, 3, 7, 2, 6), e = c(1, 2, 4, 5, 6, 7, 6, 3), f = c(2, […]