小编Rom*_*rik的帖子

如何捕获整数(0)?

假设我们有一个产生的陈述integer(0),例如

 a <- which(1:3 == 5)
Run Code Online (Sandbox Code Playgroud)

抓住这个最安全的方法是什么?

error-handling integer r try-catch

118
推荐指数
5
解决办法
10万
查看次数

data.frame行到列表

我有一个data.frame,我想按行转换为列表,这意味着每一行都对应于它自己的列表元素.换句话说,我想要一个只要data.frame有行的列表.

到目前为止,我已经通过以下方式解决了这个问题,但我想知道是否有更好的方法来解决这个问题.

xy.df <- data.frame(x = runif(10),  y = runif(10))

# pre-allocate a list and fill it with a loop
xy.list <- vector("list", nrow(xy.df))
for (i in 1:nrow(xy.df)) {
    xy.list[[i]] <- xy.df[i,]
}
Run Code Online (Sandbox Code Playgroud)

r list dataframe

112
推荐指数
7
解决办法
14万
查看次数

检查数字是否为整数

我很惊讶地发现R没有附带一个方便的函数来检查数字是否为整数.

is.integer(66) # FALSE
Run Code Online (Sandbox Code Playgroud)

帮助文件警告:

is.integer(x)不测试是否x 包含整数!为此,请使用round,如is.wholenumber(x)示例中的函数 .

该示例将此自定义函数作为"解决方法"

is.wholenumber <- function(x, tol = .Machine$double.eps^0.5)  abs(x - round(x)) < tol
is.wholenumber(1) # is TRUE
Run Code Online (Sandbox Code Playgroud)

如果我必须编写一个函数来检查整数,假设我没有阅读上面的注释,我会编写一个函数,它会像

check.integer <- function(x) {
    x == round(x)
}
Run Code Online (Sandbox Code Playgroud)

我的方法会在哪里失败?如果你穿着我的假想鞋,你的工作会是什么?

integer r rounding

92
推荐指数
7
解决办法
11万
查看次数

R图:大小和分辨率

我已经陷入了问题:我需要绘制DPI = 1200和特定打印尺寸的图像.

默认情况下,png看起来不错...... 在此输入图像描述

png("test.png",width=3.25,height=3.25,units="in",res=1200)
par(mar=c(5,5,2,2),xaxs = "i",yaxs = "i",cex.axis=1.3,cex.lab=1.4)
plot(perf,avg="vertical",spread.estimate="stddev",col="black",lty=3, lwd=3)
dev.off()
Run Code Online (Sandbox Code Playgroud)

但是当我应用这个代码时,图像变得非常糟糕,它不能缩放(适合)所需的大小.我错过了什么?如何将图像"拟合"到情节中?

在此输入图像描述,

plot png r

58
推荐指数
2
解决办法
10万
查看次数

计算R中矩阵的每列的平均值

我在R工作室的R工作.我需要计算数据帧每列的平均值.

 cluster1  // 5 by 4 data frame
 mean(cluster1) // 
Run Code Online (Sandbox Code Playgroud)

我有 :

  Warning message:
  In mean.default(cluster1) :
  argument is not numeric or logical: returning NA
Run Code Online (Sandbox Code Playgroud)

但我可以使用

  mean(cluster1[[1]])
Run Code Online (Sandbox Code Playgroud)

得到第一列的平均值.

如何获得所有列的方法?

任何帮助,将不胜感激.

r mean dataframe

52
推荐指数
3
解决办法
20万
查看次数

按行列出data.frames的快速矢量化合并

关于在SO列表中合并data.frame的大多数问题与我试图在这里得到的内容并不完全相关,但可以随意证明我的错误.

我有一个data.frames列表.我想逐行"rbind"行到另一个data.frame.实质上,所有第一行形成一个data.frame,第二行形成第二个data.frame等等.结果将是与原始data.frame中的行数相同的长度列表.到目前为止,data.frames的尺寸相同.

这里有一些数据可供使用.

sample.list <- list(data.frame(x = sample(1:100, 10), y = sample(1:100, 10), capt = sample(0:1, 10, replace = TRUE)),
        data.frame(x = sample(1:100, 10), y = sample(1:100, 10), capt = sample(0:1, 10, replace = TRUE)),
        data.frame(x = sample(1:100, 10), y = sample(1:100, 10), capt = sample(0:1, 10, replace = TRUE)),
        data.frame(x = sample(1:100, 10), y = sample(1:100, 10), capt = sample(0:1, 10, replace = TRUE)),
        data.frame(x = sample(1:100, 10), y = sample(1:100, 10), capt = sample(0:1, 10, replace = TRUE)), …
Run Code Online (Sandbox Code Playgroud)

performance merge r list dataframe

49
推荐指数
3
解决办法
1万
查看次数

如何使用ggplot绘制时抑制警告

将缺失值传递给ggplot时,它非常友好并警告我们它们存在.这在交互式会话中是可以接受的,但是在编写报表时,输出不会出现警告,特别是如果有很多警告.下面的示例缺少一个标签,产生警告.

library(ggplot2)
library(reshape2)
mydf <- data.frame(
  species = sample(c("A", "B"), 100, replace = TRUE), 
  lvl = factor(sample(1:3, 100, replace = TRUE))
)
labs <- melt(with(mydf, table(species, lvl)))
names(labs) <- c("species", "lvl", "value")
labs[3, "value"] <- NA
ggplot(mydf, aes(x = species)) + 
   stat_bin() + 
   geom_text(data = labs, aes(x = species, y = value, label = value, vjust = -0.5)) +
   facet_wrap(~ lvl)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果我们suppressWarnings绕过最后一个表达式,我们会得到有多少警告的摘要.为了论证,让我们说这是不可接受的(但确实非常诚实和正确).打印ggplot2对象时如何(完全)抑制警告?

r ggplot2

47
推荐指数
3
解决办法
2万
查看次数

R:找到字符串中的最后一个点

在R中,是否有比下面找到字符串中最后一个点的位置更好/更简单的方法?

x <- "hello.world.123.456"
g <- gregexpr(".", x, fixed=TRUE)
loc <- g[[1]]
loc[length(loc)]  # returns 16
Run Code Online (Sandbox Code Playgroud)

这会找到字符串中的所有点,然后返回最后一个点,但它看起来相当笨拙.我尝试使用正则表达式,但没有走得太远.

regex r

45
推荐指数
3
解决办法
3万
查看次数

如何更改R的语言环境?

我在Ubuntu 12.10上使用R版本2.15.3(2013-03-01).系统是德语,因此是R.在搜索错误消息时,这是不方便的.

以这种方式在xterm中执行R $ LANG="C" R部分地解决了这个问题.然后R用英语显示所有内容.但是当以这种方式加载RStudio时,R解释器仍然是德语.所以我正在寻找一种方法来改变R本身的R语言环境.

我发现了这个:如何更改R中的语言设置,但Sys.setenv(LANG = "en")对我不起作用:

2+x
# Fehler: Objekt 'x' nicht gefunden
Sys.setenv(LANG = "en")
2+x
# Fehler: Objekt 'x' nicht gefunden
Run Code Online (Sandbox Code Playgroud)

我也尝试Sys.setenv(LANG = "en_US.UTF-8")过没有成功.

输出 Sys.getlocale()

Sys.getlocale()
# [1] "LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=de_DE.UTF-8;
# LC_COLLATE=de_DE.UTF-8;LC_MONETARY=de_DE.UTF-8;LC_MESSAGES=de_DE.UTF-8;
# LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=de_DE.UTF-8;
# LC_IDENTIFICATION=C"
Run Code Online (Sandbox Code Playgroud)

(为方便起见添加了行制动器)

locale r

45
推荐指数
7
解决办法
5万
查看次数

R:数字'envir'arg不是长度为1的预测()

我试图通过将变量传递到模型中来预测R使用predict()函数的值.

我收到以下错误:

Error in eval(predvars, data, env) : 
  numeric 'envir' arg not of length one
Run Code Online (Sandbox Code Playgroud)

这是我的data frame名字df:

df <- read.table(text = '
     Quarter Coupon      Total
1   "Dec 06"  25027.072  132450574
2   "Dec 07"  76386.820  194154767
3   "Dec 08"  79622.147  221571135
4   "Dec 09"  74114.416  205880072
5   "Dec 10"  70993.058  188666980
6   "Jun 06"  12048.162  139137919
7   "Jun 07"  46889.369  165276325
8   "Jun 08"  84732.537  207074374
9   "Jun 09"  83240.084  221945162
10  "Jun 10"  81970.143 …
Run Code Online (Sandbox Code Playgroud)

r predict lm

44
推荐指数
1
解决办法
9万
查看次数

标签 统计

r ×10

dataframe ×3

integer ×2

list ×2

error-handling ×1

ggplot2 ×1

lm ×1

locale ×1

mean ×1

merge ×1

performance ×1

plot ×1

png ×1

predict ×1

regex ×1

rounding ×1

try-catch ×1