小编Blu*_*ter的帖子

从R中的数据帧绘制多条线

我正在构建一个R函数来绘制数据表中的几行,我不明白为什么这不起作用?

data = read.table(path, header=TRUE);
plot(data$noop);
lines(data$noop, col="blue");
lines(data$plus, col="green");
Run Code Online (Sandbox Code Playgroud)

我正在从我拥有的文件中读取数据,其格式如下:

 noop         plus         mins
 33.3         33.3         33.3
 30.0         40.0         30.0
 25.0         50.0         25.0
Run Code Online (Sandbox Code Playgroud)

这是数据集的最小表示,包含更多标题和更多数据点.因此,该数据集的每一行都反映了在给定时间采集的样本.所以我的目标是从文件中读取这些数据,然后将每列绘制为由不同颜色的线连接的一系列点.

我目前使用的方法只是绘制1行,而不是多行.

plot r graph

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

as.Date()不尊重POSIXct时区

好吧所以这里是一个微妙的"怪癖"在r as.Date函数转换为带有时区的POSIXct,我想知道它是否是一个bug.

> as.POSIXct("2013-03-29", tz = "Europe/London")
[1] "2013-03-29 GMT"
> as.Date(as.POSIXct("2013-03-29", tz = "Europe/London"))
[1] "2013-03-29"
Run Code Online (Sandbox Code Playgroud)

到目前为止没有问题,但.....

> as.POSIXct("2013-04-01", tz = "Europe/London")
[1] "2013-04-01 BST"
> as.Date(as.POSIXct("2013-04-01", tz = "Europe/London"))
[1] "2013-03-31"
Run Code Online (Sandbox Code Playgroud)

有谁见过这个?这是一个错误还是另一个怪癖?愚人节?

datetime r date posixct

6
推荐指数
1
解决办法
453
查看次数

在stat_smooth顶部更改图例中geom_point的alpha级别

当我添加时,我遇到了更改图例中我(彩色)点的alpha值的麻烦stat_smooth.

require(ggplot2)

set.seed(1052)
dx <- runif(2000,0,10)
dy <- dx * rep(c(1,-1), each = 1000) + rnorm(2000,0,1)
dcol <- rep(c(TRUE, FALSE), each = 1000)
dd <- data.frame(x = dx, y = dy, col = dcol)

gg <- ggplot(dd) + aes(x = x, y = y, colour = col) + geom_point(alpha = 1/5)
gg
Run Code Online (Sandbox Code Playgroud)

传说是阴天.

点的alpha值会延伸到图例(使颜色难以查看),但此问题表明您可以使用以下方式覆盖图例详细信息guides:

magic <- guides(colour = guide_legend(override.aes = list(alpha = 1))) 
gg + magic
Run Code Online (Sandbox Code Playgroud)

这是固定的!

凉.但是当我投入时stat_smooth,魔法停止工作.

gg + stat_smooth(method = "lm")
Run Code Online (Sandbox Code Playgroud)

线条很稳定,但点数低.

gg …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

6
推荐指数
1
解决办法
932
查看次数

如何使用R来解决/挑选最适合工作的人 - 有约束力?

我是R的新手,我正在尝试为Excel中的Solver编写一个脚本.在下面的数据中,我列出了工作类型为AE的工人.每个工人都有工资和生产率.我想要做的是找到10个工人的最大产量,累计工资<100,000.限制是我需要总共10个工人,我需要2个来自工作类型AD,1个来自E,以及1个任何类型.

我用optim,IpSolve等搜索并搜索了一种方法,但是由于我的知识有限,我没有太多运气.

谢谢您的帮助!

Name    Pos Salary  Producton
Joe     A   12001   13.1
Jim     A   17753   23.5
Jill    A   11447   14.8
Brian   A   11447   14.8
Sally   B   2171    1.2
Nancy   B   4537    2.1
Francis B   2840    1.8
Ace     B   2840    1.8
Bill    C   3818    1.6
Ted     C   11447   0.1
Henry   C   2000    1.1
Kyle    C   3818    1.6
Sam     D   11447   0.1
Trevor  D   2000    1.1
John    D   4317    11.7
Jerome  D   2000    1.1
Rebecca E   3818    1.6
Sunny   E   11447   0.1
Britt …
Run Code Online (Sandbox Code Playgroud)

r mathematical-optimization solver maximize integer-programming

6
推荐指数
1
解决办法
384
查看次数

ggplot2中具有可变大小binwidth的直方图

我有以下数据

 dati <- read.table(text="
        class     num
    1     0.0   63530
    2     2.5   27061
    3     3.5   29938
    4     4.5   33076
    5     5.6   45759
    6     6.5   72794
    7     8.0  153177
    8    10.8  362124
    9    13.5  551051
    10   15.5  198634
  ")
Run Code Online (Sandbox Code Playgroud)

我想生成一个具有可变大小区间的直方图,以便每个条形区域反映每个区间的总数(num).我试过了

bins <- c(0,4,8,11,16)
p <- ggplot(dati) +
  geom_histogram(aes(x=class,weight=num),breaks = bins)
Run Code Online (Sandbox Code Playgroud)

然而,这产生直方图,其中每个条的长度等于每个箱的总数.因为箱宽度是可变的,所以区域与数量不成比例.我无法在ggplot2中解决这个明显容易出问题的问题.谁能帮我?

r histogram ggplot2

6
推荐指数
1
解决办法
6806
查看次数

SQL Server更新查询不使用索引

我有一个运行缓慢的更新查询(请参阅下面的第一个查询).我在PhoneStatus表和PhoneID列上创建了一个名为IX_PhoneStatus_PhoneID的索引.Table PhoneStatus包含2000万条记录.当我运行以下查询时,不使用索引并使用聚簇索引扫描,反过来更新运行缓慢.

UPDATE PhoneStatus    
SET RecordEndDate = GETDATE()    
WHERE PhoneID = 126  
Run Code Online (Sandbox Code Playgroud)

如果我执行以下查询,其中包括新的FROM,我仍然遇到与未使用的索引相同的问题.

UPDATE PhoneStatus    
SET RecordEndDate = GETDATE()   
FROM Cust_Profile.PhoneStatus     
WHERE PhoneID = 126 
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加HINT以强制在FROM上使用索引它可以正常工作,并使用索引搜索.

UPDATE PhoneStatus     
SET RecordEndDate = GETDATE()   
FROM Cust_Profile.PhoneStatus WITH(INDEX(IX_PhoneStatus_PhoneID))   
WHERE PhoneID = 126    
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么第一个查询不会使用索引?

更新

在包含2000万条记录的表中,每个phoneID最多可以显示10次

BarDev

sql-server indexing performance

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

R:在将NA计算为零的情况下,如何在案例中对变量求和

虚假数据插图:

df <- data.frame(a=c(1,2,3,4,5), b=(c(2,2,2,2,NA)), 
                 c=c(NA,2,3,4,5)))
Run Code Online (Sandbox Code Playgroud)

如果不是NA值,这会得到我想要的答案:

df$count <- with(df, (a==1) + (b==2) + (c==3)) 
Run Code Online (Sandbox Code Playgroud)

如果我只对它感兴趣,那么会有更优雅的方式吗,例如变量== 2?

df$count <- with(df, (a==2) + (b==2) + (c==2)) 
Run Code Online (Sandbox Code Playgroud)

非常感谢!

r na

5
推荐指数
1
解决办法
2703
查看次数

按名称从数据框中删除列

可能重复:
从R中的data.frame中删除整个列

是否有更好的方法从数据框中按名称删除列而不是以下?

Orange[colnames(Orange) != "Age"]
Run Code Online (Sandbox Code Playgroud)

我尝试过以下操作并收到错误:

> Orange[-"Age"]
Error in -"age" : invalid argument to unary operator
> Orange[,-"Age"]
Error in -"age" : invalid argument to unary operator
> Orange[[,-"Age"]]
Error in -"age" : invalid argument to unary operator
Run Code Online (Sandbox Code Playgroud)

r dataframe

5
推荐指数
2
解决办法
5387
查看次数

格式化以查找在Windows中无效的星期几

我是R.的新手.我在工作中使用Windows PC,在家中使用Ubuntu Linux.我试图找出为什么我的代码在Windows R中不起作用.我试图找到给定日期的一周(数字).使用格式,format(Sys.time(), "%u")
它适用于Linux而不是Windows?我错过了什么,我从两台PC上添加了一个简单的代码和会话信息.

我的Windows 7 PC输出R 3.01

sessionInfo() 
R version 3.0.1 (2013-05-16)
Platform: x86_64-w64-mingw32/x64 (64-bit)
locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    
LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    
attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base  

format(Sys.time(), "%u") 
[1] ""   

Sys.time()  
[1] "2013-09-22 10:34:00 CDT"
Run Code Online (Sandbox Code Playgroud)

我的LINUX PC输出R 3.01

sessionInfo()  
R version 3.0.1 (2013-05-16)
Platform: x86_64-pc-linux-gnu (64-bit)
locale:
[1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
[3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
[5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
[7] LC_PAPER=C                 LC_NAME=C                 
[9] LC_ADDRESS=C               LC_TELEPHONE=C …
Run Code Online (Sandbox Code Playgroud)

format datetime r datetime-format

5
推荐指数
2
解决办法
169
查看次数

点元字符如何匹配换行符?

我认为.正则表达式中的点将匹配任何字符,除了行尾字符。

但是,在 R 中,我发现点可以匹配任何内容,包括换行符\n\r\r\n

grep(c("\r","\n","\r\n"),pattern=".")
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)

有人能解释一下这个矛盾吗?

regex r

5
推荐指数
1
解决办法
1215
查看次数