Tag: r

如何parsingXML到R数据框

我试图parsingXML到R数据框,这个链接帮了我很多: 如何从xml文件创build一个R数据框 但是我还是无法弄清我的问题: 这是我的代码: data <- xmlParse("http://forecast.weather.gov/MapClick.php?lat=29.803&lon=-82.411&FcstType=digitalDWML") xmlToDataFrame(nodes=getNodeSet(data1,"//data"))[c("location","time-layout")] step1 <- xmlToDataFrame(nodes=getNodeSet(data1,"//location/point"))[c("latitude","longitude")] step2 <- xmlToDataFrame(nodes=getNodeSet(data1,"//time-layout/start-valid-time")) step3 <- xmlToDataFrame(nodes=getNodeSet(data1,"//parameters/temperature"))[c("type="hourly"")] 我想要的数据框是这样的: latitude longitude start-valid-time hourly_temperature 29.803 -82.411 2013-06-19T15:00:00-04:00 91 29.803 -82.411 2013-06-19T16:00:00-04:00 90 我卡在xmlToDataFrame,任何帮助将非常感激,谢谢。

如何在data.table中通过引用删除一行?

我的问题是关于分配参考与data.table复制。 我想知道是否可以通过引用删除行,类似于 DT[ , someCol := NULL] 我想知道 DT[someRow := NULL, ] 我想为什么这个函数不存在是有很好的理由的,所以也许你可以指出一个很好的替代方法,如下所示。 特别是,从我的例子(data.table)最喜欢的, DT = data.table(x = rep(c("a", "b", "c"), each = 3), y = c(1, 3, 6), v = 1:9) # xyv # [1,] a 1 1 # [2,] a 3 2 # [3,] a 6 3 # [4,] b 1 4 # […]

如何使用“OR”将多个条件组合到一个数据框中?

我在R有一个data.frame我想在两个不同的列上尝试两个不同的条件,但我希望这些条件是包容性的。 因此,我想用“或”来结合条件。 当我想使用“AND”条件时,我已经使用了以下语法,并取得了很大的成功。 my.data.frame <- data[(data$V1 > 2) & (data$V2 < 4), ] 但是我不知道如何在上面使用'OR'。

data.table vs dplyr:一个人可以做些什么,另一个不行或者做得不好?

概观 我对data.table比较熟悉,与data.table不太dplyr 。 我已经读过一些dplyr小插曲和例子,到目前为止,我的结论是: data.table和dplyr在速度上是可比较的,除非有很多(即> 10-100K)的组,在其他一些情况下(见下面的基准) dplyr有更多可访问的语法 dplyr抽象(或将)潜在的数据库交互 有一些次要的function差异(请参阅下面的“示例/用法”) 在我看来2.不会承受太多的重量,因为我对data.table相当熟悉,但我明白,对于新用户来说这将是一个很大的因素。 我想避免一个关于哪一个更直观的论点,因为从已经熟悉data.table的人的angular度来看,这与我提出的具体问题是无关的。 我也想避免讨论“更直观”如何导致更快的分析(当然,但是,不是我最感兴趣的是这里)。 题 我想知道的是: 是否有分析任务比熟悉软件包的人更容易使用一个或另一个软件包进行编码(即,所需的击键与所需的深奥级别的组合,其中每一个都是好事)。 是否有分析任务在一个包中比另一个更有效地执行(即超过2倍)。 最近的一个问题使我想到了这个问题 ,因为直到那时,我不认为dplyr会提供比dplyr更多的东西。 这里是dplyr解决scheme(数据在Q末尾): dat %.% group_by(name, job) %.% filter(job != "Boss" | year == min(year)) %.% mutate(cumu_job2 = cumsum(job2)) 这比我在data.table解决scheme上的尝试要好得多。 也就是说,良好的data.table解决scheme也是相当不错的(感谢Jean-Robert,Arun,并且在这里我注意到我偏爱最严格的最佳解决scheme): setDT(dat)[, .SD[job != "Boss" | year == min(year)][, cumjob := cumsum(job2)], by=list(id, job) ] 后者的语法可能看起来很深奥,但是如果你习惯data.table (即不使用一些更深奥的技巧),它实际上是非常简单的。 理想情况下,我想看到的是一些很好的例子, dplyr或data.table方式更加简洁或者performance更好。 […]

按组提取对应variables最小值的行

我希望(1)用一个variables( State )对数据进行分组,(2)在每个组内find另一个variables( Employees )的最小值的行,并且(3)提取整个行。 (1)和(2)是简单的一行,我觉得(3)也应该是,但我不明白。 这是一个示例数据集: > data State Company Employees 1 AK A 82 2 AK B 104 3 AK C 37 4 AK D 24 5 RI E 19 6 RI F 118 7 RI G 88 8 RI H 42 data <- structure(list(State = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 2L, […]

R – dplyr – mutate – 使用dynamicvariables名称

我想使用dplyr的 mutate()在数据框中创build多个新列。 列名和它们的内容应该是dynamic生成的。 来自虹膜的示例数据: require(dplyr) data(iris) iris <- tbl_df(iris) 我创build了一个函数来从Petal.Widthvariables中改变我的新列: multipetal <- function(df, n) { varname <- paste("petal", n , sep=".") df <- mutate(df, varname = Petal.Width * n) ## problem arises here df } 现在我创build一个循环来build立我的列: for(i in 2:5) { iris <- multipetal(df=iris, n=i) } 然而,由于mutate认为varname是一个文字variables名,循环只创build一个新variables(称为varname)而不是四个(称为petal.2 – petal.5)。 我怎样才能mutate()使用我的dynamic名称作为variables名?

在R图窗口中结合base和ggplotgraphics

我想生成一个具有基本和ggplotgraphics组合的graphics。 以下代码显示了使用R的基本绘图函数的graphics: t <- c(1:(24*14)) P <- 24 A <- 10 y <- A*sin(2*pi*t/P)+20 par(mfrow=c(2,2)) plot(y,type = "l",xlab = "Time (hours)",ylab = "Amplitude",main = "Time series") acf(y,main = "Autocorrelation",xlab = "Lag (hours)", ylab = "ACF") spectrum(y,method = "ar",main = "Spectral density function", xlab = "Frequency (cycles per hour)",ylab = "Spectrum") require(biwavelet) t1 <- cbind(t, y) […]

grep使用具有多种模式的字符向量

我正在尝试使用grep来testing一个stringvector是否存在于另一个vector中,并输出存在的值(匹配模式)。 我有这样的数据框: FirstName Letter Alex A1 Alex A6 Alex A7 Bob A1 Chris A9 Chris A6 我在“Letter”列中find了string模式的向量,例如: c("A1", "A9", "A6") 。 我想检查模式向量中的任何string是否出现在“Letter”列中。 如果是的话,我想输出独特的值。 问题是,我不知道如何使用多种模式的grep 。 我试过了: matches <- unique ( grep("A1| A9 | A6", myfile$Letter, value=TRUE, fixed=TRUE) ) 但它给了我0比赛这是不正确的,有什么build议吗?

如何将颜色分配给ggplot2中具有稳定映射的分类variables?

我在上个月已经开始加速与R,这是我在这里的第一篇文章。 期待join社区。 这是我的问题: 将颜色分配给ggplot2中具有稳定映射的分类variables的好方法是什么? 我需要在具有不同子集和不同数量分类variables的一组图表中使用一致的颜色。 例如, plot1 <- ggplot(data, aes(xData, yData,color=categoricaldData)) + geom_line() 其中categoricalData有5个级别。 接着 plot2 <- ggplot(data.subset, aes(xData.subset, yData.subset, color=categoricaldData.subset)) + geom_line() 其中categoricalData.subset有3个级别。 然而,两组中的特定层次将以不同的颜色结束,这使得难以一起读取graphics。 我是否需要在数据框中创build颜色vector? 还是有另一种方法来分配特定的颜色类别? 谢谢

如何在ggplot2 R图中设置轴限制?

我绘制以下内容: library(ggplot2) carrots <- data.frame(length = rnorm(500000, 10000, 10000)) cukes <- data.frame(length = rnorm(50000, 10000, 20000)) carrots$veg <- 'carrot' cukes$veg <- 'cuke' vegLengths <- rbind(carrots, cukes) ggplot(vegLengths, aes(length, fill = veg)) + geom_density(alpha = 0.2) 现在说我只想绘制x=-5000到5000之间的区域,而不是整个范围。 我怎样才能做到这一点?