我正在构建一个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行,而不是多行.
好吧所以这里是一个微妙的"怪癖"在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)
有谁见过这个?这是一个错误还是另一个怪癖?愚人节?
当我添加时,我遇到了更改图例中我(彩色)点的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的新手,我正在尝试为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
我有以下数据
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中解决这个明显容易出问题的问题.谁能帮我?
我有一个运行缓慢的更新查询(请参阅下面的第一个查询).我在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
虚假数据插图:
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中的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.的新手.我在工作中使用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) 我认为.正则表达式中的点将匹配任何字符,除了行尾字符。
但是,在 R 中,我发现点可以匹配任何内容,包括换行符\n, \r 或\r\n:
grep(c("\r","\n","\r\n"),pattern=".")
[1] 1 2 3
Run Code Online (Sandbox Code Playgroud)
有人能解释一下这个矛盾吗?