小编Jos*_*hua的帖子

在 R 中聚合顺序和分组数据

我有一个看起来像这个玩具示例的数据集。数据描述了一个人搬迁到的位置以及自搬迁发生以来的时间。例如,人 1 从农村开始,但在 463 天前搬到了城市(第 2 行),在 415 天前从这个城市搬到了城镇(第 3 行)等。

set.seed(123)
df <- as.data.frame(sample.int(1000, 10))
colnames(df) <- "time"
df$destination <- as.factor(sample(c("city", "town", "rural"), size = 10, replace = TRUE, prob = c(.50, .25, .25)))
df$user <- sample.int(3, 10, replace = TRUE)
df[order(df[,"user"], -df[,"time"]), ]
Run Code Online (Sandbox Code Playgroud)

数据:

time destination user
 526       rural    1
 463        city    1
 415        town    1
 299        city    1
 179       rural    1
 938        town    2
 229        town    2
 118        city    2
 818        city    3
 195        city    3
Run Code Online (Sandbox Code Playgroud)

我希望将此数据汇总为以下格式。即,计数类型重定位的 …

grouping r dataframe

10
推荐指数
4
解决办法
235
查看次数

在PSQL中从字符串中提取年份和周数时出现问题

假设我有一系列SQL表,其名称为name_YYYY_WWYYYY = year和WW = week number.如果我调用一个将用户定义的日期引导到右表的函数.

如果输入的日期是"20110101":

SELECT EXTRACT (WEEK FROM DATE '20110101') 返回52和

SELECT EXTRACT (YEAR FROM DATE '20110101') 返回2011年.

虽然是没有错的这些结果我想"20110101"要么指向表name_2010_52name_2011_01,不是name_2011_52象现在这样,当我concanate结果,形成表的查询.

这个问题的优雅解决方案?

postgresql datetime

7
推荐指数
1
解决办法
7242
查看次数

传递字符串作为附加数据列名称的名称

我知道可以使用eval(parse())as.names()函数将字符串作为变量名传递。但我的问题有点不同。

我有一个包含数据列名称的字符串,例如字符串:data1$column2。当我尝试上述命令时,我收到变量的变量未找到错误 data1$column2。变量本身当然是被调用的data1,因此无法找到,因为 R 将整个字符串解释为变量名。

如何让 $ 符号作为列引用?某种粘贴为文本命令也很棒。也就是说,如果我可以将字符串作为控制台输入的文字部分传递。

例子

attach(iris)
col_names <- cbind("iris$Sepal.Length", "iris$Sepal.Width")
col_names
Run Code Online (Sandbox Code Playgroud)

现在我想做:

"as.data.frame(parse(col_names))"
Run Code Online (Sandbox Code Playgroud)

也就是说,可以解释为:

as.data.frame(cbind(iris$Sepal.Length, iris$Sepal.Width))
Run Code Online (Sandbox Code Playgroud)

r

4
推荐指数
1
解决办法
9755
查看次数

在R中拆分字符串并从列表中提取信息

我的数据中有以下行名称:

column_01.1
column_01.2
column_01.3
column_02.1
column_02.2
Run Code Online (Sandbox Code Playgroud)

我可以使用以下命令拆分这些rownames:

strsplit(rownames(my_data),split= "\\.")
Run Code Online (Sandbox Code Playgroud)

并获取列表:

[[1]]
[1] "column_01" "1"   

[[2]]
[1] "column_01" "2"   

[[3]]
[1] "column_01" "3"

...
Run Code Online (Sandbox Code Playgroud)

但是因为我想要第一部分中的字符并完全丢弃第二部分,如下所示:

column_01
column_01
column_01
column_02
column_02
Run Code Online (Sandbox Code Playgroud)

我已经没有技巧只提取这部分信息.我已经尝试了unlist()和as.data.frame()的一些选项,但没有运气.或者是否有更简单的方法来分割字符串?我不想as.character(substring(rownames(my_data),1,9))用作"."的位置.可以改变(虽然它适用于这个例子).

r

3
推荐指数
1
解决办法
3833
查看次数

在 R 中对大数据进行一次性编码的有效方法

我正在尝试创建我的数据的单热表示。这是我的方法:

data(iris)
iris = as.data.frame(apply(iris, 2, function(x) as.factor(x)))
head(iris)

iris_ohe <- data.frame(model.matrix(~.-1, iris))
head(iris_ohe)
dim(iris_ohe)
Run Code Online (Sandbox Code Playgroud)

问题是,我正在处理的数据有超过 100 万行,在进行编码时,我得到了一个超过 100 列的矩阵。这太多了R,我的内存不足:

Error: cannot allocate vector of size 10204.5 Gb
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法可以尝试?

r sparse-matrix

3
推荐指数
1
解决办法
2975
查看次数

在 Safari 中运行 AppleScript 时出现 Automator 权限错误 – 替代方案和安全风险?

我想使用 Automator 和 AppleScript 在 Safari 中填写表单。我有一个功能脚本,看起来像这个玩具示例:

on run {}
    tell application "System Events" to keystroke "Hello"
    tell application "System Events" to keystroke tab
    tell application "System Events" to keystroke "World"
end run
Run Code Online (Sandbox Code Playgroud)

我希望当我位于浏览器中的特定位置时使用键盘快捷键来执行它。但是,当我这样做时,我遇到了权限问题:

The action "Run AppleSCript" encountered an error: 
"System Events got an error: Automator Workflow Runner 
(WorkflowServiceRunner, my_script_name) is not allowed to send keystrokes"
Run Code Online (Sandbox Code Playgroud)

System Prefrences -> Security & Privacy -> Privacy -> Accessibility“我已允许Automator和”中AppleScript Utility,在选项卡下 Automation,我已允许System EventsSafari。

如果我也允许 …

safari macos applescript automator

3
推荐指数
1
解决办法
2425
查看次数