我是R的初学者并且有问题.真的很感激任何帮助!当我在以下(简化)的情况下应用for循环时,我收到一条错误消息,说"替换有5行,数据有4"
Country <- c("Germany", "France", "Italy", "Spain")
Unemploy <- c(2, 3, 4, 10)
Growth <- c(2, 7, 6, 9)
data <- data.frame(Country, Unemploy, Growth)
for (i in data$Country) {
if (identical(data$Country[i], "France")) {
data$Growth[i] <- "5"
} else {
data$Growth[i] <- "2"
}
}
Run Code Online (Sandbox Code Playgroud)
发出以下消息:
Error in `$<-.data.frame`(`*tmp*`, "Growth", value = c("2", "2", "2", :
replacement has 5 rows, data has 4
Run Code Online (Sandbox Code Playgroud) 在我的R程序中,我有一个以下形式的"for"循环:
for(i in 1:I)
{
res[i] <- a[i:I] %*% b[i:I]
}
Run Code Online (Sandbox Code Playgroud)
其中res,a和b是长度的矢量I.
有没有直接的方法来避免这个循环并直接计算res?如果是这样,那会更有效吗?
提前致谢!
在我的.Rprofile中,我有以下两行定义 .First
makeActiveBinding(".refresh", function() { system("R"); q("no") }, .GlobalEnv)
makeActiveBinding('.rm', function() {rm(list=ls(envir = .GlobalEnv),envir=.GlobalEnv); gc()}, .GlobalEnv)
Run Code Online (Sandbox Code Playgroud)
它们通常是无害的,除非我偶然输入它们!第一个.refresh函数将退出并重新启动R会话.第二个清空全球环境.然而,在使用时,tables()从功能data.table这两个功能都运行哪些是不完全理想的.
目前,我已将它们从我身上移除,.First但我很好奇是否有办法避免这种情况.该tables()函数中的违规行是:
tt = objects(envir = env, all.names = TRUE)
ss = which(as.logical(sapply(tt, function(x) is.data.table(get(x,
envir = env)))))
Run Code Online (Sandbox Code Playgroud) 我有一个名为django-admin的应用程序myapp,我希望在不同的物理盒上部署多个实例,每个客户一个.但是,我希望所有人都可以从类似的域访问它们mydomain.com/customer1/myapp.
我已经摆弄了特定的代理设置,并在SO上尝试了多项建议,但没有一个非常适合我的用例...因为我对两者都知之甚少nginx而且django我不知所措!
我目前的nginx.conf是:
server {
listen 80;
server_name myserver.com
location ^~ /static {
alias /path/to/static/files/;
}
# location / {
# proxy_pass http://127.0.0.1:8001;
# }
location ^~ /customer1/myapp/static {
alias /path/to/static/files/;
}
location /customer1/myapp {
rewrite ^/customer1/myapp/(/?)(.*) /$2 break;
proxy_pass http://127.0.0.1:8001;
}
}
Run Code Online (Sandbox Code Playgroud)
我可以通过预期进入登录屏幕myserver.com/customer1/myapp/admin.但是,当我尝试登录时,nginx会将我的网址重写myserver.com/admin为不是有效的网址.如何让nginx实际重写url并仅更改传递给的url 127.0.0.1:8001?
FWIW,我正在使用gunicorn服务gunicorn -b 127.0.0.1:8001 -n myapp.如果我取消注释/位置并删除最后两个位置块,那么该应用程序效果很好.
如果有其他选择,我对这种方法的态度还很远.目标是避免为每个部署修改django代码,而只是为nginx.conf添加最少的代码以用于新部署.
我是R和ggplot2的新手.我有一个带饮料消费数据的csv文件.第一列是年份,然后接下来的9列是饮料类型,如咖啡,茶,苏打等,其中包含该行年份值的消费金额值.数据涵盖41年.我一直在研究这个并尝试很多东西.我可以使用ggplot轻松地为任何一种类型的饮料创建点图.
但是,我想在每个图的x轴上创建水平堆积点图.所以,有一个咖啡的情节,然后在它下面,一个用于茶,等等.我想我想用facet.我也想我想让我的数据重组,所以它有3列:一年一年,一年为"类别"(即咖啡,茶,苏打水等),最后一列为价值.我的想法是,一旦我获得该表格中的数据,那么使用分面应该是直截了当的.
问题是,我似乎无法弄清楚如何以该形式获取我的数据.以下是数据的前几行的外观:
Year Whole Milk Other Milk Total Milk Tea Coffee Diet Soda Regular Soda Total Soda Juice
1970 25.5 5.8 31.3 6.8 33.4 2.1 22.2 24.3 5.5
1971 25 6.3 31.3 7.2 32.2 2.2 23.3 25.5 5.8
1972 24.1 6.9 31 7.3 33.6 2.3 23.9 26.2 6
Run Code Online (Sandbox Code Playgroud)
有人能帮我吗?
dput 的数据是:
structure(list(Year = 1970:1972, `Whole Milk` = c(25.5, 25, 24.1
), `Other Milk` = c(5.8, 6.3, 6.9), `Total Milk` = c(31.3, 31.3,
31), Tea = c(6.8, 7.2, 7.3), Coffee …Run Code Online (Sandbox Code Playgroud) 这里很简单,我曾经知道这一点,但多年来它已经丢失了.
简单的方程易于编码R:
f(x,y) = 2x^2 + 4y^2 + 6x - 8y + 15
Run Code Online (Sandbox Code Playgroud)
我有x > 1和的约束y > -1.
我不能为我的生活记住如何在R中正确地写出约束,而我所拥有的书是没有用的
欢呼任何帮助
寻找最小和最大
我试图绘制一个散点图x,y由因子z(五个值)着色,颜色值由我尝试过的调色板指定:
library(ggplot2)
Palette1 <- c('red','green','blue','violet','black')
p <- ggplot(df1, aes(x,y))
p + geom_point(aes(colour = factor(z)))
p + scale_colour_manual(values=Palette1 )
Run Code Online (Sandbox Code Playgroud)
但是我收到一条错误消息:
Error: No layers in plot
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
我有矩阵
m <- matrix(c(1, 0, 3, 4, 0, 6), 3)
Run Code Online (Sandbox Code Playgroud)
我需要过滤出两个列的值都为0的行,这些行实际上返回了矩阵:
m <- matrix(c(1, 3, 4, 6), 3)
Run Code Online (Sandbox Code Playgroud)
我试过了
m[m[, 1] > 0 & m[, 2] > 0]
Run Code Online (Sandbox Code Playgroud)
但是这会返回一个向量而不是一个只有0的行的矩阵.这应该很简单,但我被卡住了.
谢谢, - 伊丽莎白
我正在同一个ggplot中绘制geom_path对象和geom_text对象,但遇到了以下问题:
#load the data frames
df1 <- data.frame(x=c(32, 42, 52), y=c(15, 20, 25), grp=c(1, 2, 2), site=c("A", "B", "C"))
df1$grp = factor(df1$grp)
colnames(df1)[3] = "Group"
df2 <- data.frame(x=c(32, 42, 52), y=c(15, 20, 25))
#create basic plot with site name coloured by group
p = ggplot(df1, aes(x=x, y=y, label=site))
p = p + geom_text(aes(colour=factor(Group)), size=4)
p = p + coord_fixed()
#I try adding a path
p = p + geom_path(data=df2, aes(x=x, y=y))
Run Code Online (Sandbox Code Playgroud)
但是在eval(expr,envir,enclos)中得到错误Error:找不到对象'site'
有任何想法吗?
考虑
ext <- data.frame(cond = rep(c('a', 'b'), each = 2), dat = runif(4) )
Run Code Online (Sandbox Code Playgroud)
我想要
exw <- unstack(ext, dat ~ cond)
Run Code Online (Sandbox Code Playgroud)
但我想做到这一点的dcast()在reshape2(用于教育的目的).这可能吗?
r ×9
ggplot2 ×3
for-loop ×2
constraints ×1
data.table ×1
django ×1
django-admin ×1
loops ×1
matrix ×1
nginx ×1
reshape2 ×1