Tag: r

如何使用data.table:=高效地计算坐标对之间的距离

我想find最有效(最快)的方法来计算lat长度坐标对之间的距离。 已经提出了一个不太有效的解决scheme(在这里)使用sapply和spDistsN1{sp} 。 我相信如果使用:=运算符在data.table使用spDistsN1{sp}那么这可能会变得更快,但是我一直无法做到这一点。 有什么build议么? 这是一个可重现的例子 : # load libraries library(data.table) library(dplyr) library(sp) library(rgeos) library(UScensus2000tract) # load data and create an Origin-Destination matrix data("oregon.tract") # get centroids as a data.frame centroids <- as.data.frame(gCentroid(oregon.tract,byid=TRUE)) # Convert row names into first column setDT(centroids, keep.rownames = TRUE)[] # create Origin-destination matrix orig <- centroids[1:754, ] dest <- centroids[2:755, […]

滚动平均(移动平均)由组/ id与dplyr

我有一个纵向的血压logging的后续行动。 某一点的价值比移动平均值(滚动均值)要低,这就是我为什么要计算的原因。 数据看起来像 test <- read.table(header=TRUE, text = " ID AGE YEAR_VISIT BLOOD_PRESSURE TREATMENT 1 20 2000 NA 3 1 21 2001 129 2 1 22 2002 145 3 1 22 2002 130 2 2 23 2003 NA NA 2 30 2010 150 2 2 31 2011 110 3 4 50 2005 140 3 4 […]

合并(rbind)dataframe并创build具有原始dataframe名称的列

我有几个数据框,我想按行组合。 在生成的单一数据框架中,我想创build一个新的variables来标识观察来自哪个数据集。 # original data frames df1 <- data.frame(x = c(1, 3), y = c(2, 4)) df2 <- data.frame(x = c(5, 7), y = c(6, 8)) # desired, combined data frame df3 <- data.frame(x = c(1, 3, 5, 7), y = c(2, 4, 6, 8), source = c("df1", "df1", "df2", "df2") # xy source # […]

为什么R对象不能在函数或“for”循环中打印?

我有一个名为ddd的Rmatrix。 当我input这个时,一切工作正常: i <- 1 shapiro.test(ddd[,y]) ad.test(ddd[,y]) stem(ddd[,y]) print(y) 呼叫夏皮罗·威尔克,安德森·达林,并干所有的工作,并提取相同的专栏。 如果我把这个代码放在一个“for”循环中,那么对Shapiro Wilk和Anderson Darling的呼叫停止工作,而干叶呼叫和打印呼叫继续工作。 for (y in 7:10) { shapiro.test(ddd[,y]) ad.test(ddd[,y]) stem(ddd[,y]) print(y) } The decimal point is 1 digit(s) to the right of the | 0 | 0 0 | 899999 1 | 0 [1] 7 如果我尝试写一个函数,也会发生同样的事情。 SW&AD不起作用。 其他的电话呢。 > D <- function (y) { […]

如何将string拆分成给定长度的子string?

我有一个string,如: "aabbccccdd" 我想把这个string分解成长度为2的子string的向量: "aa" "bb" "cc" "cc" "dd"

生成vector元素的所有可能组合的列表

我试图在长度为14的vector中生成0和1的所有可能的组合。有没有一种简单的方法来获得输出作为向量列表,甚至更好,一个dataframe? 为了更好地展示我正在寻找的内容,我们假设我只想要一个长度为3的向量。我希望能够生成以下内容: (1,1,1), (0,0,0), (1,1,0), (1,0,0), (1,0,1), (0,1,0), (0,1,1), (0,0,0) 任何帮助将不胜感激! 谢谢,

使用!= <某些非NA>子集化data.table也不包括NA

我有一个数据表。 我想删除那些列的特定值的行(这恰好是"" )。 但是,我的第一次尝试也导致我失去了NA的行: > a = c(1,"",NA) > x <- data.table(a);x a 1: 1 2: 3: NA > y <- x[a!=""];y a 1: 1 看完了?`!=` ,我发现了一个可以工作的class轮,但是这很痛苦: > z <- x[!sapply(a,function(x)identical(x,""))]; z a 1: 1 2: NA 我想知道是否有更好的方法来做到这一点? 另外,我没有看到扩展这个排除多个非NA值的好方法。 这是一个坏方法: > drop_these <- function(these,where){ + argh <- !sapply(where, + function(x)unlist(lapply(as.list(these),function(this)identical(x,this))) + ) + if (is.matrix(argh)){argh […]

如何对string中的字母进行sorting?

假设我有一个strings = "bcabca" 。 "aabbcc"最简单的方法是什么,即sortings的字母?

是否有一个R函数将函数应用于每对列?

我经常需要对数据框/matrix中的每对列应用函数,并将结果以matrixforms返回。 现在我总是写一个循环来做到这一点。 例如,要创build一个包含相关p值的matrix,我写: df <- data.frame(x=rnorm(100),y=rnorm(100),z=rnorm(100)) n <- ncol(df) foo <- matrix(0,n,n) for ( i in 1:n) { for (j in i:n) { foo[i,j] <- cor.test(df[,i],df[,j])$p.value } } foo[lower.tri(foo)] <- t(foo)[lower.tri(foo)] foo [,1] [,2] [,3] [1,] 0.0000000 0.7215071 0.5651266 [2,] 0.7215071 0.0000000 0.9019746 [3,] 0.5651266 0.9019746 0.0000000 哪个起作用,但是对于非常大的matrix非常缓慢。 我可以在R中为此写一个函数(不要因为假设上面的对称结果而把切割时间减半): Papply <- function(x,fun) { n <- […]

一维数据最佳聚类?

有没有人有一篇文章解释Ckmeans.1d.dpalgorithm的工作原理? 或者:在一维中进行k-means聚类的最优方法是什么?