我偶然发现了一个恼人的问题。我正在尝试一次执行多个独立样本 t 检验,并按值分组。
举个例子:我们在5个城市测量了男性和女性的工作满意度。对于每个主题,我们都知道他们的城市、性别和满意度得分。我们可以像这样对整个样本进行 t 检验:
t.test(Score ~ Gender, paired = FALSE)
Run Code Online (Sandbox Code Playgroud)
但是,我想对每个城市进行 t 检验,看看每个城市每个性别的平均工作满意度是否存在差异。我该怎么做呢?
对于一个项目,我想创建一个闪亮的仪表板,该仪表板由 SharePoint 中各个人员提供的数据提供支持,并且能够在 SharePoint 中编辑文件后自动更新。
由于我工作的公司存在防火墙问题,将 SharePoint 文件夹同步到我的本地磁盘并从那里上传文件似乎是一个更好的主意。
我的代码如下所示:
observe({
invalidateLater(2000, session)
list <- list.files(path = "../../folder/folder", pattern = ".xlsx", recursive = T)
for (i in 1:length(list)) {
assign(basename(file_path_sans_ext(list[i])),
as.data.table(read_xlsx(paste0("../../folder/folder/", list[i]))))
}
})
Run Code Online (Sandbox Code Playgroud)
代码本身运行良好。它获取所有文档并将它们分配给 data.tables,并以文件名作为名称。但是,每当我对 SharePoint 中的某个文档进行更改时,它都不会更新本地磁盘中的文件,直到我手动打开它。我可以看到这一点,因为当我在文件资源管理器中的预览窗格中,它仍然会显示未编辑的文档。
我的问题: 在 R 中是否有办法强制同步,或者在 OneDrive 中是否有办法在对原始文件进行更新后自动同步?所有文件加起来大约是 250kb,所以即使自动更新在大多数情况下可能太重,我认为对我来说也没什么问题。
假设如下表:
data <- data.table(dummy=1:10)
Run Code Online (Sandbox Code Playgroud)
我知道你可以做以下事情:
data[dummy < 5, c("test1", "test2") := list("Yes", 1)]
Run Code Online (Sandbox Code Playgroud)
和:
data[, test1 := fcase(dummy < 5, "Yes")]
data[, test2 := fcase(dummy < 5, 1)]
Run Code Online (Sandbox Code Playgroud)
我正在尝试将这些组合成一个,如下所示:
data[, c("test1", "test2") := fcase(dummy < 5, list("Yes", 1))]
Run Code Online (Sandbox Code Playgroud)
但它给了我以下错误:
Error in fcase(dummy < 5, list("Yes", 1)) :
Length of output value #2 must either be 1 or length of logical condition.
Run Code Online (Sandbox Code Playgroud)
我需要经过多个过滤器,所以使用fcase. 我总是可以对每个过滤器使用第一个解决方案,如下所示:
data[dummy < 5, c("test1", "test2") := list("Yes", 1)]
data[dummy > 7, c("test1", "test2") := list("No", …Run Code Online (Sandbox Code Playgroud)