我正在创建一个查询SQL数据库的闪亮应用程序.如果查询的数据在两个日期有条目,我想警告用户.此外,我希望用户能够选择要查询的数据集.这是一个例子:
服务器
# Create example data
set.seed(10)
MeasurementA <- rnorm(1000, 5, 2)
MeasurementB <- rnorm(1000, 5, 2)
Wafer <- rep(c(1:100), each=10)
ID <- rep(c(101:200), each=10)
Batch <- rep(LETTERS[seq(from=1, to =10)], each=100)
Date <- rep(seq(as.Date("2001-01-01"), length.out = 100, by="1 day"), each=10)
# Add data for Wafer 1 with a new date
W2 <- rep(1, each=10)
ID2 <- rep(101, each=10)
Batch2 <- rep("A", each=10)
Date2 <- rep(as.Date("2001-04-11"), each=10)
MA2 <- rnorm(10, 5, 2)
MB2 <- rnorm(10, 5, 2)
df <- data.frame(Batch, Wafer, …Run Code Online (Sandbox Code Playgroud) 有没有办法在ggplot中设置中断步长而不定义序列.例如:
x <- 1:10
y <- 1:10
df <- data.frame(x, y)
# Plot with auto scale
ggplot(df, aes(x,y)) + geom_point()
# Plot with breaks defined by sequence
ggplot(df, aes(x,y)) + geom_point() +
scale_y_continuous(breaks = seq(0,10,1))
# Plot with automatic sequence for breaks
ggplot(df, aes(x,y)) + geom_point() +
scale_y_continuous(breaks = seq(min(df$y),max(df$y),1))
# Does this exist?
ggplot(df, aes(x,y)) + geom_point() +
scale_y_continuous(break_step = 1)
Run Code Online (Sandbox Code Playgroud)
你可能会说我是懒惰,但也出现了几次,我不得不改变min和max我的极限seq由于添加的错误吧.所以我只想说...使用x的中断大小,具有自动缩放限制.
这是对此的后续问题(write.csv permissonshiny server - R)。
我正在使用一个闪亮的应用程序来搜索和保存一些数据。我在获取文件夹权限时遇到问题。读完这篇文章(https://groups.google.com/forum/#!topic/shiny-discuss/srWETT6uL-I)后,我设法通过运行 RStudio 服务器 shell 来解决:
sudo chown闪亮:闪亮/path_to_app/path_to_data
然而,这似乎不再对我有用了。当我单击应用程序中的“保存数据”按钮时,我收到了熟悉的错误:
cannot open compressed file 'mutec/mutec_data.rds', probable reason 'Permission denied
Run Code Online (Sandbox Code Playgroud)
所以我读了这篇文章(https://askubuntu.com/questions/528411/how-do-you-view-file-permissions)来尝试找出文件夹权限。我明白了:
Mutec_data$ ls -l ./mutec 总计 4 -rw-r--r-- 1 pdowns pdowns 446 4 月 17 日 12:22 mutec_data.rds
我正在努力解释这一点。是不是意味着用户pdowns可以读写?是否应该有一个具有读写权限的“闪亮”用户?
这是我的 saveData 函数:
outputDir <- "mutec"
saveData <- function(data) {
# Write the file to the local system
saveRDS(
object = data,
file = file.path(outputDir, "mutec_data.rds")
)
}
Run Code Online (Sandbox Code Playgroud)
更新
当我检查允许我写入的文件夹的权限时,我得到以下信息:
PPL040_baseline$ ls -l …
我一直在使用这个here 包来让我的项目更便携。除了我cronR用来安排我的一些脚本之外,它的效果很好。当我my_script.R从 Rstudio运行时,我收到一条消息library(here):
here() starts at /home/pd/projects/my_proj
Run Code Online (Sandbox Code Playgroud)
当我设置script.R运行 using 时,cronR我收到一条不同的消息:
here() starts at /home/pd
Run Code Online (Sandbox Code Playgroud)
这my_schedule.cron是存储的地方。理想情况下,我想保持my_schedule.cron原样。my_script.R除了保存数据之外,我可以从日志中看到运行良好的日志,因为使用的路径here()不正确。无论如何,是否可以在从终端或终端运行here时获得检测项目目录的功能?my_script.RcronR
不久前,我正在阅读一篇关于改进项目工作流程的文章。建议不要使用setwd,否则我的电脑会烧毁:
如果 R 脚本的第一行是
setwd("C:\Users\jenny\path\that\only\I\have")
我会进入你的办公室并点燃你的计算机。
我开始使用这个here包,它运行得很好,直到我开始使用cronR. 问完这个问题后,我的笔记本电脑再次受到纵火威胁:
如果你的 #rstats 脚本的第一行是 wd <- here(),我将进入你的实验室并点燃你的计算机。
由于担心笔记本电脑的安全,我开始使用答案中建议的方法来获取相对文件路径:
wd <- Sys.getenv("HOME")
wd <- file.path(wd, "projects", "my_proj")
Run Code Online (Sandbox Code Playgroud)
这对我有用,但对与我一起工作但没有相同projects目录的人不起作用。所以现在我很困惑。获取相对文件路径以便项目可以移植的最安全/最好的方法是什么?
我认为这一定是重复但我似乎无法在堆栈上找到答案.有没有办法比较同一个wd中的两个R脚本,看它们是否相同?
就像是:
a <- source("script1.R")
b <- source("script2.R")
identical(a, b)
Run Code Online (Sandbox Code Playgroud)
我不仅仅指每个脚本中的函数,还包括注释等所有其他内容.
谢谢
我有一个本地 GitLab 帐户,其中包含一个 R 包,可以通过以下方式安装:
devtools::install_git(
url = "http://my-gitlab/my-projects/package",
credentials = git2r::cred_user_pass("user", "pass")
)
Run Code Online (Sandbox Code Playgroud)
当我运行renv::init()包源时未知。入门文章确实详细介绍了如何设置函数来处理私有存储库,但在使用devtools和时我无法弄清楚 GitLab 的情况git2r::cred_user_pass。我可以将GIT_USER和存储GIT_PASSWORD在.Renviron文件中,但我不确定如何强制init使用这些凭据的用户devtools::install_git使用该功能。我确实尝试过,但后来出现错误:
fatal: could not read Username for 'http://my-gitlab': No such device or address
Run Code Online (Sandbox Code Playgroud)
他们提供的所有示例选项都使用 GitLab 令牌进行身份验证:
# use a named list directly
options(renv.auth = list(
MyPackage = list(GITHUB_PAT = "<pat>")
))
Run Code Online (Sandbox Code Playgroud)
也许有更好的方法从本地 GitLab 存储库安装,可以更好地配合使用renv?
我相信这一定是重复的.说我有这个:
stage <- seq(1,3,1)
exp1 <- c("A","B","C")
exp2 <- c("A","B","C")
exp3 <- c(NA, "B","C")
exp4 <- c("D","B","C")
exp5 <- c("A","B","C")
exp6 <- c(NA, "B","C")
df <- data.frame(stage, exp1, exp2, exp3, exp4, exp5, exp6)
stage exp1 exp2 exp3 exp4 exp5 exp6
1 1 A A <NA> D A <NA>
2 2 B B B B B B
3 3 C C C C C C
Run Code Online (Sandbox Code Playgroud)
我想组合所有重复的列并通过连接列名来显示它.我能找到重复的列有:
df[duplicated(lapply(df, summary))]
exp2 exp5 exp6
1 A A <NA>
2 B B B …Run Code Online (Sandbox Code Playgroud) 我喜欢数据表并使用它来有条件地重命名或添加因子.但是,我似乎不能一次做多个因素.这是一个例子:
a <- rep(c("A", "B", "C", "D"), each=3)
b <- 1:12
df <- data.frame(a,b)
DT <- data.table(df)
Run Code Online (Sandbox Code Playgroud)
现在添加新列"New",对于列"a"中的所有"A"等于"z"
DT[a=="A", New:="z"]
Run Code Online (Sandbox Code Playgroud)
这很好用.现在,如果我想改变说"A"和"C"等于"z":
DT[a==c("A", "C"), New:="z"]
Run Code Online (Sandbox Code Playgroud)
给我有趣的答案:
dput(DT)
structure(list(a = structure(c(1L, 1L, 1L, 2L, 2L, 2L, 3L, 3L,
3L, 4L, 4L, 4L), .Label = c("A", "B", "C", "D"), class = "factor"),
b = 1:12, New = c("z", NA, "z", NA, NA, NA, NA, "z", NA,
NA, NA, NA)), .Names = c("a", "b", "New"), row.names = c(NA,
-12L), class = c("data.table", "data.frame"), .internal.selfref …Run Code Online (Sandbox Code Playgroud) 我确信这一定是一个骗局,但我就是无法让它发挥作用。我想向数据框中添加 ID 列,对于一列中的每个唯一值,该列重置为 1。最好的描述方式是举例:
gr1 <- c("A","A","A","B","B","B")
gr2 <- c(1,1,2,3,4,4)
df <- data.frame(gr1, gr2)
Run Code Online (Sandbox Code Playgroud)
期望的输出:
id <- c(1,1,2,1,2,2)
df <- cbind(df, id)
Run Code Online (Sandbox Code Playgroud)
id 标记 gr1 的每个子集中 gr2 的唯一值。当 gr1 从 A 更改为 B 时,id 重置为 1。我已阅读此内容(基于两列 R 分配 ID),但这不是我想要的。我不想添加排名函数(我认为),因为我希望我的领带在 gr1 中都具有相同的 id,例如
df2 <- df %>% group_by(gr1) %>% mutate(id=rank(gr2, ties.method="max"))
Run Code Online (Sandbox Code Playgroud)
把我的头撞到墙上。任何指示都会有很大的帮助。