我正在尝试用矩阵替换NA - mat- 用零.我正在使用mat[is.na(mat)] <- 0.当我有8945个变量或更小变量的94531观测矩阵时效果很好但我在112039个22752个变量的观测矩阵上尝试它,R表示错误:
if(!nreplace)返回错误(x):缺少值需要TRUE/FALSE
另外:警告消息:
总和(i,na.rm = TRUE):整数溢出 - 使用sum(as.numeric(.))
我不知道我做错了什么,我不明白错误.
这是我的数据结构的一个例子.
small data.matrix :(由真实数据源制作)
> str(mat)
Classes 'data.table' and 'data.frame': 94531 obs. of 18946 variables:
$ 6316506: num 1 0 NA NA NA NA NA NA NA NA ...
$ 6794602: num 0 1 NA NA NA NA NA 0 0 0 ...
$ 1008667: num NA NA 0 1 0 NA NA 0 0 0 ...
$ 6312454: num NA NA 1 …Run Code Online (Sandbox Code Playgroud) 我注意到基本的R quantile函数不支持日期参数。
我赞赏为日期定义分位数需要在定义中加以注意(即,如果您有6个日期并要求第25个百分位数,则需要定义合适的舍入)。
是否有这种分位数功能的有效实现,可以作为基础或其他程序包的一部分。
以下示例函数实质上实现了我感兴趣的功能(通过一些调整来处理第0个百分位数的情况),但是我认为可以实现更有效的实现。
#Date quantile function.
dquantile <- function(x, probs){
sx <- sort(x)
pos <- round( probs * length(x) )
return( sx[pos] )
}
# Example.
dates <- as.Date("01/01/1900", "%d/%m/%Y") + floor( 36500 * runif(100000) )
dquantile(dates, c(0.001, 0.025, 0.975, 0.999) )
Run Code Online (Sandbox Code Playgroud) 这是一个非常简单的问题,我似乎完全无法得到解决方案.我想在R中做一个观察到的时间序列的散点图,在此我想绘制拟合的模型.
所以我试着这样的:
model <- lm(x~y+z)
plot(x)
lines(fitted(model))
Run Code Online (Sandbox Code Playgroud)
但这只是用线条绘制x.
谢谢
如何重塑这些广泛的数据:(来自csv文件)
Name Code Indicator 1960 1961 1962
Run Code Online (Sandbox Code Playgroud)
进入这种长格式?
Name Code Indicator Year
Run Code Online (Sandbox Code Playgroud) 我正在工作R,有一个名为的包lme4.
执行模型:
lmer.rasch <- lmer(Response ~ item -1 + (1|STIDSTD),family=binomial, data=exampledata)
Run Code Online (Sandbox Code Playgroud)
让我在控制台输出,如帖子末尾所示.我想复制这个,似乎是一个表,excel,或最终说,识别单独的列和行.Ctrl-C/Ctrl-V到excel会识别行,但不识别列.
使用write.csv(lmer.rasch)给出错误:
as.data.frame.default(x [[i]],optional = TRUE)中的错误:无法将类的结构("mer",package ="lme4")强制转换为data.frame
这是包中的问题,还是我错误地使用write函数的一般问题,或者R实际上没有将此输出分成列?
Fixed effects:
Estimate Std. Error z value Pr(>|z|)
variableamoeba -2.7529 0.3000 -9.175 < 2e-16 ***
variablebacterium -2.3937 0.2244 -10.668 < 2e-16 ***
variableleech 0.5578 0.1693 3.294 0.000987 ***
variablecentipede 1.7012 0.1909 8.911 < 2e-16 ***
variablelizard -4.1836 0.4090 -10.229 < 2e-16 ***
variabletapeworm -1.3697 0.1841 -7.439 1.01e-13 ***
variablehead lice 1.1803 0.1777 6.643 3.07e-11 *** …Run Code Online (Sandbox Code Playgroud) 我想将行名称从 abcde 更改为 12345 例如我想转换:
Var.1 Var.2 Var.3
A 1 5 0
B 2 4 1
C 3 3 2
D 4 2 3
E 5 1 4
Run Code Online (Sandbox Code Playgroud)
进入
names Var.1 Var.2 Var.3
1 A 1 5 0
2 B 2 4 1
3 C 3 3 2
4 D 4 2 3
5 E 5 1 4
Run Code Online (Sandbox Code Playgroud)
这个例子来自另一个问题,但我问的是相反的。
使用此数据框:
table <- "
trt rep ss d1 d4 d5 d6 d7
1 1 1 0 0 0 0 0
1 1 2 0 0 0 0 0
1 1 3 0 0 1 2 2
1 2 1 0 0 1 3 6
1 2 2 0 1 1 2 4
1 2 3 0 0 0 1 1
1 3 1 0 0 0 0 0
1 3 2 0 0 0 0 0
1 3 3 0 …Run Code Online (Sandbox Code Playgroud) 当我在R和类似Excel的电子表格软件(例如Gnumeric Spreadsheet和WPS)中对我的数据进行简单的线性拟合时,我遇到了一个奇怪的问题.
下面的数据是19对x和y
93.37262737 56200
101.406044 62850
89.27322677 56425
86.9458042 43325
70.54645355 42775
85.1936032 38375
72.10985 38376
73.54055944 22950
78.092 15225
71.30285 12850
70.03953023 18125
66.31068931 14200
93.39847716 13925
66.09695152 13225
70.6549 18125
76.43348868 14125
71.37531234 14875
85.7953977 19275
95.65012506 45375
Run Code Online (Sandbox Code Playgroud)
并保存在名为'data.csv'的文件中
我在x和y之间进行线性拟合.R脚本如下:
data<-read.csv("data.csv",col.names=c("x","y"))
# plot data
plot(data$x,data$y)
#Fit
lmodelx<-lm(data$y~data$x)
abline(lmodelx)
summary(lmodelx)
Run Code Online (Sandbox Code Playgroud)
这给出了这个结果:
Call:
lm(formula = data$y ~ data$x)
Residuals:
Min 1Q Median 3Q Max
-27855 -7151 -1314 6947 23014
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -48212.8 23691.0 …Run Code Online (Sandbox Code Playgroud) 我有一个数据框:
test_df <- data.frame(
x = c(rep("a", 5), rep("b", 5)),
y = c(1, 2, NA, 2, 3, NA, 1, 2, 3, 1)
)
Run Code Online (Sandbox Code Playgroud)
我希望通过第x列中的分组信息删除y == 2 之后的所有行.有没有办法做到这一点dplyr?
我想要的结果来自:
x y
1 a 1
2 a 2
3 a NA
4 a 2
5 a 3
6 b NA
7 b 1
8 b 2
9 b 3
10 b 1
Run Code Online (Sandbox Code Playgroud)
至
x y
1 a 1
2 a 2
6 b NA
7 b 1
8 b …Run Code Online (Sandbox Code Playgroud) 有没有办法在 R 中使用应用函数来创建条形图ggplot2?
说,我们有一个数据框,只包含因子变量,其中一个是布尔变量。就我而言,我有一个带有 +40 个变量的日期框架。可以用一行代码将所有变量与布尔变量进行对比吗?
data("diamonds")
factors <- sapply(diamonds, function(x) is.factor(x))
factors_only <- diamonds[,factors]
factors_only$binary <- sample(c(1, 0), length(factors_only), replace=TRUE)
factors_only$binary <- as.factor(factors_only$binary)
Run Code Online (Sandbox Code Playgroud)
但我想创建这样的条形图:
qplot(factors_only$color, data=factors_only, geom="bar", fill=factors_only$binary)
Run Code Online (Sandbox Code Playgroud)
这不起作用:
sapply(factors_only,function(x) qplot(x, data=factors_only, geom="bar", fill=binary))
Run Code Online (Sandbox Code Playgroud)
请指教