标签: R
Date
time-seriesfinancial
我有一套一年的财务数据。数据是在工作日收集的。
考虑到第一个数据点是在3日为juanari上的EaxPle收集的,在R中有没有办法为每个数据点指定一个日期。您需要采取两个步骤来获得解决方案:
使用seq.Date
使用wday计算一周中的某一天,并删除值为1(星期日)和7(星期六)的所有天
代码和结果:
startdate <- as.Date("2011-01-03")
dates <- seq(startdate, by="1 day", length.out=15)
dates
我希望通过在具有相同行名的行中添加值来聚合矩阵的行。我目前的做法如下:
> M
a b c d
1 1 1 2 0
1 2 3 4 2
2 3 0 1 2
3 4 2 5 2
> index <- as.numeric(rownames(M))
> M <- cbind(M,index)
> Dfmat <- data.frame(M)
> Dfmat <- aggregate(. ~ index, data = Dfmat, sum)
我试图实现一个大的线性模型,但我遇到了一个问题
添加更多变量/约束。例如,我想添加约束而不添加
矩阵(f.con)中的其他零(0),如示例中所示:
library(linprog)
f.obj <- c(3,24,79,140,230,306,338,
26,78,145,226,309,336,354,
146,250,312,364,417,496,508,
314,382,424,472,503,525,548)
f.
我有一个非常简单的数据集,我试图对表的第一列执行table(),但是R返回一条带标题的错误消息。我在网上搜索,但不太明白为什么会发生这种情况,因为R接受我的表作为一个表。。。有人能给我建议吗
我的预期产出:
> table(tab$V1)
CA 1
CO 1
OH 2
然而,它返回:
> tabraw
V1 V2
1 OH Cleveland
2 OH Columbus
3 CO Denver
4 CA SanFran
> tab
当您调用轴(1,at=time)时,您告诉R在时间所给的点上用标签绘制x轴。但是,时间是字符的向量,而不是数字
通常,可以调用轴(1,at=…,labels=…),指示实际标签以及沿轴放置标签的位置。在您的情况下,对plot.ts的调用隐式地将x轴限制设置为2010和2013.75,因此at参数应该反映这些限制
因此,您要调用轴,表示标签是时间,位置是2010、2010.25、2010.50…,即seq(from=2010,to=2013.25,by=0.25)。一般的解决方案是:
x=read
我从一个爱好和人的列表开始,我想根据他们的共同爱好对这些人进行分类。因此,我创建了一个距离矩阵,然后应用层次聚类和割树将聚类分为特定数量的聚类。现在我有了割树矩阵,但我不知道如何从中提取簇。你能给我一些建议吗
这是我的意思的一个例子
距离矩阵:
one three two
one 0 1.0 1.0
three 1 0.0 0.5
two 1 0.5 0.0
然后我使用hclust和cutree得到了这
对于如何使用公式左侧的算术进行多个聚合,例如求和和和平均值,有没有人有什么好主意
aggregate(A+B ~ C, data=D, FUN=c(sum, mean))
我希望有一个三列的结果,包括C、平均值(a+B)和总和(a+B)
我看过“doBy”软件包中的summaryBy,但它在算术上失败了
我发现的最接近的方法是创建一个接受param的自定义函数,然后在其中应用2个聚合函数,但是,结果仍然有点混乱,因为有2列,第二列包含一个包含两个聚合的列表
aggregate(A+B ~ C,
我有一个10x5矩阵。五列中的每一列都命名为
我需要创建一个向量,如下所示:
c( rep(colnames(mymatrix)[1], dim(mymatrix)[1]),
rep(colnames(mymatrix)[2], dim(mymatrix)[1]),
...
rep(colnames(mymatrix)[5], dim(mymatrix)[1]))
但是,如果我有不同数量的列怎么办?如何在不使用for循环的情况下实现自动化
谢谢 您可以使用rep的每个参数执行此操作:
标签: R
packagewarningsloadingrstudio
我在RStudio已经使用了arules软件包和RODBC软件包几天了。同时,我多次保存了工作区映像。但今天我想再次保存我的工作区图像,现在我收到以下警告:
警告信息:
在save中(list=ls(envir=.GlobalEnv,all.names=TRUE),file=outfile,:
“package:stats”在加载时可能不可用
我只使用了arules和RODBC函数和stru-split\u-fixedfromstringr和一些标准的东西,比如data.frame
我甚至没有使
标签: R
cluster-analysisk-means
我对从.csv导入的数据进行了k-means聚类。是否仍然可以将聚集结果导出回.csv文件?因为在k-means聚类完成之后,变量的类不是数据帧而是kmeans 在大多数R软件包帮助文件中,都会有一个副标题,上面写着“值”,用于描述所进行分析的输出。我最近没有使用kmeans,但我相信您希望这样:
kmeansresults<-kmeans(dataframe)
x<-kmeansresults$clusters
write.csv(x, file="name_of_file.csv
我正在绘制干预前后重复测试的一些数据。因此,我想用误差条在同一个图上绘制结果。由于两次试验的误差条交叉,难以破译,我只想在后测试时向上绘制误差条,在预测试时向下绘制误差条。
这在ggplot2中可能吗
示例代码:
library("ggplot2")
set.seed(1)
dat <- data.frame(Trial = c(rep("Pre",9),rep("Post",9)),
Time = rep.int(seq(0,120,15),2),
我想对数据集中的前4个值进行滚动平均。然而,对于开始,因为没有4个值,我想做1/2/3观测值的滚动平均值。我该怎么做
library(zoo)
df= data.frame(a=c(1,2,3,4,5))
df$answer = rollapply(df$a, 4,mean)
#help
例如,第1行的值为1,第2行的值为(1+2)/2=1.5,第3行的值为6/3=2
我想做4个周期的滚动平均值,但在月数较少的周期中,我想做允许的最大周期的平均值。您也可以尝试不使用套餐:
sapply
在dplyr中,如何对所选列执行行求和(使用列索引)
这不管用
> iris %>% mutate(sum=sum(.[1:4])) %>% head
Sepal.Length Sepal.Width Petal.Length Petal.Width Species sum
1 5.1 3.5 1.4 0.2 setosa 2078.7
2 4.9 3.0
我正在寻找以下问题的帮助
假设我有一个指示符变量:
ind <- c(0,1,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,1,1,1,1,1,0,0,0,1,1,0)
ind我们可以使用rle来实现这一点。我们得到'ind'的rle,通过对小于3的'length'进行子集设置来更改'values',对于值为1的值(!!values),将相应的'values'指定为0,并使用inverse.rle将输出转换回vector
inverse.rle(within.list(
我有一些数据如下:
x.row10 <- setNames(data.frame(letters[1:3],1:3,2:4,3:5,4:6,5:7,6:8,7:9),
c("names",2004:2009,2012))
# names 2004 2005 2006 2007 2008 2009 2012
#1 a 1 2 3 4 5 6 7
#2 b 2 3 4 5
我在R中使用随机森林模型
对于大量的树,我的程序需要很长时间才能完成
在“randomForest”函数中,我可以使用“do.trace=TRUE”来查看实时进度。在R控制台上实时输出的示例如下
ntree OOB 1 2 3 4 5 6 7 8 9
100: 2.31% 7.14% 2.08% 0.00% 2.25% 10.81% 0.90% 0.00% 0.00% 1.72%
这是我最近第二次面对这个问题,所以我想看看当其中一个元素是作为列存储在数据帧中的数组时,是否有更好的方法来解析从jsonlite返回的数据帧
我知道这部分功能是通过jsonlite实现的,但我不确定如何使用这种嵌套结构。最后,我想我可以编写自己的自定义解析,但考虑到我已经差不多做到了,我想看看如何处理这些数据
例如:
## options
options(stringsAsFactors=F)
## packages
library(httr)
library(jsonlite)
## se
给定两个数据帧:
df1 = data.frame(CustomerId = c(1:6), Product = c(rep("Toaster", 3), rep("Radio", 3)))
df2 = data.frame(CustomerId = c(2, 4, 6), State = c(rep("Alabama", 2), rep("Ohio", 1)))
df1
# CustomerId Product
# 1 Toaster
# 2 Toa
有人能解释一下为什么ore.corr和ore.freq对pearson相关性返回不同的结果吗
我的ore.freq代码:
ore.iris = ore.push(iris);
ct = ore.crosstab(Sepal.Length ~ Petal.Width, ore.iris)
ore.freq(ct,stats = "PCORR")
它回来了
METHOD FREQ DF PVALUE DESCR GROUP
1 PCORR 0.80358
我正试图在R中生成一个带有刻面的森林图,其中y轴是无标度的。但是我遇到了麻烦
以下是我的示例数据:
set.seed(1)
df <- data.frame(y=rnorm(10),x=c(1:5,1:3,1:2),group=c(rep("a",5),rep("b",3),rep("c",2)),name=c(paste("a",1:5,sep=""),paste("b",1:3,sep=""),paste("c",1:2,sep="")))
df$ymin <- df$y-run
标签: R
roundingstandard-errorsignificant-digits
下表(平均值±se)包含将在出版物中呈现的真实数据。如你所见,数据的范围非常广泛。使用R,我将所有数字四舍五入为3个有效数字,但我希望包括尾随的零以及小数点左侧的零作为有效数字,以保持表格整洁。所以基本上我希望所有的数字,在小数点的两边,包括零,都被认为是有意义的,所以不管数字是什么,只打印3位数字。这可能吗?我尝试了signif,round,sprintf,options()和formatC,但都没有成功。
这些结果是使用x$summary=paste(signif(x$Value,digit
嗨,我有下面的情节,有两个传说出现。我有一个问题:
目前,我添加的图例有6个条目“A值”、“Ad值”、“au值”、“b值”、“bD值”和“bU值”。我真的希望图例只显示4个条目
在图例中,这应该是一条蓝色实线,就像现在一样
“bd&bu”,在图例中,这应该是一条蓝色虚线……不知道如何得到它
在图例中,这应该是一条红色实线,就像现在一样
“ad&au”,在图例中,这应该是一条红色虚线……不知道如何实现这一点
有什么想法吗
显示第二个图例是因为您仅在两个辅助线之一中更改了标签和标题。如果更改另
我想使用mapply将fun应用于矩阵的所有元素。当要应用的函数使用矩阵中每个元素的位置时,我不确定如何使用mapply
fun <- function(theta, mat, i, j){
sum_nearby <- function(mat,i,j,dist){
if (j - dist < 1) mat[i, j + dist]
else if (j + dist > ncol(mat)) mat[i, j - di
我是R的初学者,已经从Stata/SPSS转换到R。我曾经在Stata中运行TABLAR命令,通过对变量分组来生成连续变量的摘要。我有什么办法可以做到这一点吗
我继续搜索,发现了这条线索:
虽然Hadley的映射函数确实帮助我提供了四分位数、均值和中位数,但我需要更多。具体地说,一个特定四分位数中的元素数量,一个因子的特定级别中的元素数量
以下是虚拟代码:
data <- c(62, 60, 63, 59, 63, 67, 71, 64, 65, 66, 68, 66,
我想把院子里的灯串起来。根据我的要求,我意识到我需要一个算法来解决一个问题,以找出灯光应该采取的最有效的路线,从而使灯光覆盖的重复边最少。经过一番搜索,我意识到也许像这样的东西是我最好的选择
但是,我在创建图表时遇到了问题
以下是它需要的外观:
粉红色的圆圈代表我可以悬挂灯光的地方
“启动”是唯一可用的电源插座
黄点表示灯光应覆盖的所有位置
下面是我的图表在引用这篇文章后的样子:
如您所见,所有节点都位于正确的位置,但边在不应连接的位置连接。这是我的密码:
library(igraph)
标签: R
ggplot2igraphggraph
我很难理解ggplot2和ggraph在刻面方面的区别。考虑以下数据:
library(igraph)
library(ggraph)
library(ggplot2)
df <- structure(list(x = c("H001", "H024", "H090", "H090", "H098",
"H103", "H126", "H152", "H155", "H155", "B002", "B011", "B075",
这是我的第一个数据帧
df1 <- as.data.frame(matrix(rbinom(9*9, 1, 0.5), ncol=9, nrow =9))
colnames(df1) <- paste(rep(c("a","b","c"), each=3), rep(c(1,2,3), 3), sep = "")
set.seed(11)
factor.1 <- paste(rep(c("a","b"), each=3), rep(c(1,2,3), 2), sep = ""
给定一列日期,这将统计每个月的记录数
library(dplyr)
library(lubridate)
samp <- tbl_df(seq.Date(as.Date("2017-01-01"), as.Date("2017-12-01"), by="day"))
freq <- samp %>%
filter(!is.na(value)) %>%
transmute(month = floor_date(value, "month")) %>
我试图通过R以编程方式下载
library("readxl")
ZIPURL <- "https://www.cms.gov/apps/ama/license.asp?file=/Medicare/Medicare-Fee-for-Service-Payment/ClinicalLabFeeSched/Downloads/18CLAB.zip"
CLAB_FileName <- "CLAB2018v1.xls"
temp <- tempfile()
download.fil
我有一个包含邻域的大型数据集,但我只想要这些邻域的一个子集,其中我有一个字符向量。
我考虑过使用for循环对其进行子集设置,请参见下面的数据示例和代码示例。看起来我的for循环实际上是在所有邻域上循环的——然而,在我的新数据集中,只有一个邻域出现,而不是所有邻域的子集。有人能告诉我我在密码里做错了什么吗
我被这些答案所启发:
最好的。谢谢
示例数据
大数据集:
> head(CBS, n=5)
# A tibble: 5 x 37
`Wijken
我想得到一些帮助,了解我的dplyr管道中发生了什么,我请求各种解决方案来解决这个问题
问题
我有一个研究所的列表(正式术语是指研究期刊文章的作者来自哪里),我想提取主要研究所的名称。如果它是一所大学,它将是XX大学,为了简单起见,这就是我在这里坚持的例子
尝试解决方案逻辑
用逗号分隔机构名称
“大学”或其他大学相关术语的grep
在命中的位置提取索引
边缘案例/假设
我正在搜索的术语只存在于一个拆分中
这里的所有研究所都是大学(为了避免堆栈溢出,这里的问题保持简单)
代码
我假设正在发生但
我看了一些其他的答案,并试图复制代码,但运气不佳。我有一个街道名称列表,希望保留这些名称,但去掉了它们的名称,如street、st、stret、avenue、avnuen等。显然,有些名称拼写错误。我尝试了以下方法:
group<-c("avenue", "avenuen", "ave", "street", "st", "stret")
group
result: "avenue" "avenue" "ave" "street" "st" "stret"
gsub("avenue","a
我喜欢下面提到的dataframe(例如):
通过使用上述数据框,我需要通过ACC_ID和ACC_TYPE从最极端的月份聚合中收集过去三个月的日期5、10、15、20和25的值。如果我们没有推送05、10、15、20和25的任何月份,则给出过去日期的估计值(即如果20不可访问,则给出19的估计值,如果19不小于18,依此类推)
如果无法访问任何月份,请在该月份演示零激励
在下面提到的示例输出中,为了简单起见,我保留了Date\u 1到Date\u 4和Value\u 1到Value\u 4,对于
这似乎是一个愚蠢的问题,但我已经在网上搜索,但仍然没有找到任何充分的答复
我的问题是:假设我们有一个矩阵M,然后我们使用scale()函数,我们如何通过编写一行代码来提取每列的中心和比例(我知道我们可以看到中心和比例…),但我的矩阵有很多列,手工操作很麻烦
有什么想法吗?非常感谢 您正在查找属性函数:
set.seed(1)
mat = matrix(rnorm(1000),,10) # Suppose you have 10 columns
s = scale(mat) # scale
我有100亿行的大数据集。在这个大数据文件中有一个日期变量。但该变量是自然因素(如2012年3月19日、2012年2月20日等)。我想在原始数据变量中转换这个因子变量。我已经尝试过这种方式,但它显示“NA”输出!有人能给我建议一下使用R的可能解决方案吗
strDates <- c("19MAR2012")
dates <- as.Date(strDates, "%d %m %Y")
dates
#[1] NA
strDates您需要
as.Date(strDates, "
标签: R
Model
glmlmgamma-distribution
我试图计算伽马GLM模型的工作残差。我手动执行此操作是因为我想一步一步地计算部分残差。我的模型及其系数和预测如下所述:
library(datasets)
data(mtcars)
model <- glm(mpg ~ cyl + disp + hp, data=mtcars, family=Gamma)
coefs <- coef(model)
pred <- coefs[1] + coefs[2]*mtcars$cyl + coefs[3]*mtcars$disp + c
标签: R
data-visualizationdata-sciencedata-analysis
作为参考,以下是我的数据-
我试图用条形图来观察这些变量之间的关系。下面是我使用的R代码和我得到的绘图
library(lattice)
barchart(DiagAge~interaction(Gender,Race),groups=Ethnicity,data=df,auto.key=T,stack=T)
我想在Y轴上看到Diagrage(糖尿病被诊断的年龄),然而,当前代码显示的一些数字看起来像是某件事情的频率 这里有一个tidyr和ggplot解决方案。我使用了具有代表性的数据来节
标签: R
precisionnumericnumerical-methodsintegral
使用内置的integrate函数在R中集成数千个性能良好的函数时,我得到了一个非常不可能但非常危险的数值错误
故事(可以跳过)。我的问题与最大似然法有关,并且基于一个高度非线性的函数(10–20个参数),对于该函数,不存在解析表达式,因此一次求值需要计算数千个积分。我已生成包含此错误的MWE。为了优化此函数,由于存在多个局部最优解,我尝试了1000个点,进行了1000次迭代(使用无导数方法,如hydroPSO中的粒子群和DEoptim中的差分进化),因此仅对于一个模型,我就必须计算超过十亿个积分
我正在尝试筛选我的数据,并删除具有少于9个唯一月观察值的ID。我还想创建一个包含计数的ID列表
我尝试过使用几个不同的选项:
library(dplyr)
count <- bind %>% group_by(IDS) %>% filter(n(data.month)>= 9) %>% ungroup()
count2 <- subset(bind, with(bind, IDS %in% names(which(table(data.month)
标签: R
non-standard-evaluation
我正在深入研究R的非标准评估机制。半路上,我仍然不时被卡住
我制作了一个小小的计算器,它将计算结果与结果一起打印出来:
calculator <- function(e) cat(deparse(substitute(e)), "=", e)
印刷品:
1 + 2 = 3
但是,使用以下命令调用计算器时:
a <- 1; b <- 2
calculator(a + b)
如何调整我的计算器,使其在后一种情况下也能打印1+2=3
我试过:
calculator2 <
我正在尝试从df2中删除df1中带有NA的相同行。
例如
预期结果:
df1
A
1 1
3 7
df2
A B C D
1 2 4 7 10
3 9 5 1 3
我已经尝试过一些类似于
newdf <- df2[-which(rowSums(is.na(df1))),]
newdf我们可以使用is.na来创建一个逻辑条件,并使用它来子集“df1”和“df2”的行
i1 <- !is.na(df1$A)
df1[i1, , drop = FAL
标签: R
For Loop
paneldate-rangecoding-efficiency
大家早上好,我正在寻找一个更好的代码来代替我的代码,因为我的旧电脑
我使用我的代码根据日期范围分配ID,该代码适用于小样本
然而,我的数据有700000OB,我的日期范围有700000OB,我的旧电脑无法完成这项工作,因为我的代码很差,我如何提高代码效率?或者可能有更好的软件包我可以使用?谢谢你们
假设TestDATA与CRSPION FUNDNO之间的一对多关系,考虑合并< /代码>和子集< /代码>,避免嵌套循环:
mrg_df <- merge(testdata, test, b
我有一个data.frame,其中包含事件及其到达时间戳(微秒精度)。在第二个数据帧中,我有开始和结束时间(=有效期间隔)的状态
下面是我编写的for循环例程,它可以完成任务,但是非常慢。
我认为data.table、map/apply、并行化(我有12个内核可用)的组合可以大大减少处理时间
你能帮我优化一下代码吗
谢谢
options(digits.secs = 6)
start <- strptime("2019-10-16 08:00:00.789543 CET", "%Y-%m-
我有这些数据
group name
1 A
1 A
1 A
1 B
1 C
2 A
2 B
3 A
3 B
3 C
3 D
我想用标准筛选组。
例如,我想过滤{A,B,C}中的组
组1将被筛选,因为{A,B,C}(组1的唯一组合)位于{A,B,C}中
组2将被筛选,因为{A,B}位于{A,B,C}中
但是,组3不会被过滤,因为{A,B,C,D}不是{A,B,C
我一直在读一本关于功能工程的书,一段代码有一个三重感叹号,我不明白:
vc_pred <-
recipe(Stroke ~ ., data = stroke_train %>% dplyr::select(Stroke, !!!VC_preds)) %>%
step_YeoJohnson(all_predictors()) %>%
prep(stroke_train %>% dplyr::select(Stroke, !!!VC_preds)) %
我附上了一张图片,但我现在有一个表,我想把它变成一个数据帧。然而,当我尝试
as.data.frame(pred_表)
它返回了完全不同的结果。我想要一个数据框,第一列是名字,第二列是x,第三列是y,等等。
谢谢你的帮助 也许你可以这样做:
#Convert to dataframe
data <- as.data.frame.matrix(pred_table)
#Assign column names
names(data) <- letters[seq_along(data)
由于下面的代码,我可以在radarchart上显示7辆车(A到G)的特征,我可以通过单击图表左侧的复选框选择要显示的车数:
if(交互式()){
图书馆(闪亮)
图书馆(电子艺廊)
dat对服务器代码进行轻微调整可以解决此错误。请尝试此操作
# Server function -------------------------------------------
server <- function(input, output) {
observe({
req(input$v
我正在用几何分布模拟一个基本的高尔顿-沃森过程(GWP)。我用这个来计算每一代的灭绝概率。我的问题是,如何找到灭绝概率等于1的那一代
例如,我可以为GWP创建一个函数,如下所示:
# Galton-Watson Process for geometric distribution
GWP <- function(n, p) {
Sn <- c(1, rep(0, n))
for (i in 2:(n + 1)) {
Sn[i] <- sum(rgeom(S
我想从包含农药使用的光栅文件中提取一些施用率、总施用量和面积。我有很多文件,我需要这样做,光栅是缓慢的,所以我需要在terra中做,而不是努力复制遮罩功能
以下是光栅中的代码(从此处复制:):
有什么办法可以解决这个问题吗?在terra中的区域方法与在光栅中有点不同。在terra中,它可以返回一个光栅(每个单元的面积)或一个数字(总面积)。在您的情况下,a是总面积,您不能将其与mask一起使用也就不足为奇了(当然,在每一步检查对象都很好)
您可以使用sum=FALSE获得所需内容。通过添加mas
我想知道如何计算每小时一个变量的平均值。我想每1/2小时计算一次平均值,然后每1、2、4和6小时计算一次
这是我的数据集:
dput(head(R3L12, 10))
structure(list(Date = c("2015-05-23", "2015-05-23", "2015-05-23",
"2015-05-23", "2015-05-23", "2015-05-23&quo
1 2 3 4 5 6 ...
下一页 最后一页 共 4364 页