小编Dan*_*Dan的帖子

如何在 R 中读取 PHP serialize() 数据

我正在通过 R 连接到 MySQL 数据库,并且数据库中的一些数据如下所示:

a:1:{s:17:\"last_cart_refresh\";i:1470188219;}
Run Code Online (Sandbox Code Playgroud)

我的理解是,这是使用 PHPserialize()函数的PHP 序列化数据 。R 中有没有办法(本地或使用包)来理解这些数据?

编辑:补充说明我希望在 R 而不是 PHP 中能够读取数据。

php serialization r

5
推荐指数
1
解决办法
609
查看次数

单个栏上的ggplot透明度

我目前正在尝试使用ggplot创建一个条形图,其中包含一个部分透明的条形图.

我有以下代码:

dt1 <- data.table(yr=c(2010,2010,2011,2011),
                  val=c(1500,3000,2000,1100),
                  x=c("a","b","a","b"))


ggplot() + geom_bar(data=dt1, aes(x=yr, y=val,fill=x),stat="identity") +
  scale_x_continuous(breaks=dt1$yr)
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含2列堆叠数据的简单图表.我已经尝试了以下代码来调整2011年的值以获得透明度,但是我没有太多运气.有什么指针吗?

dt1[,alphayr:=ifelse(yr==2011,.5,1)]
ggplot() + geom_bar(data=dt1, aes(x=yr, y=val,fill=x),stat="identity", alpha=dt1$alphayr) +
scale_x_continuous(breaks=dt1$yr)
Run Code Online (Sandbox Code Playgroud)

r ggplot2 data.table

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

将 lapply 中的列与 data.table 一起使用

我有data.table几个列(可以是动态数量的列),我想对其应用最小值。每列都有自己特定的最小值。

我的基本版本data.table如下所示:

library(data.table)
dt <- data.table(
  urn = 1:10,
  col1 = 5:14,
  col2 = 11:20
)
Run Code Online (Sandbox Code Playgroud)

注意:我只包含了两列,其中的值需要具有代表的最小值。可能有更多的列,因此尝试动态地对此进行编码。

我的方法是嵌套lapply语句等,但我不知道如何在lapply函数中调用我的列。

min_vals <- c(10, 15)
my_cols <- grep("^col", colnames(dt), value = TRUE)

## First approach
dt[,
  (my_cols) := lapply(min_vals, function(x) {
    my_cols[my_cols < x] <- x
  })]

## Second Approach
dt[,
  (my_cols) := lapply(min_vals, function(x) {
    ifelse(my_cols < x, x, my_cols)
  })]

Run Code Online (Sandbox Code Playgroud)

目前,第一种方法将所有行设置为相应的min_vals,而不仅仅是min_vals. 第二种方法根本不起作用,反而出错。

所需的输出如下所示:

dt
#       urn  col1  col2
# …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

正则表达式忽略引号中的模式(Python或R)

我正在尝试创建一个正则表达式,允许我找到一个我没有空格的字符串实例,/ 例如:

some characters/morecharacters
Run Code Online (Sandbox Code Playgroud)

我已经提出了下面的表达式,它允许我在我/和单词字符之前找到单词字符或右括号,或者之后打开括号字符.

(\w|\))/(\(|\w)
Run Code Online (Sandbox Code Playgroud)

这适用于大多数情况,但是当我/附上引号时,我会松开.在这种情况下,我希望它被忽略.我在这里这里看过几个不同的帖子.但是,我不能让他们在我的情况下工作.

我想要的是下面确定的前三个案例匹配和最后一个被忽略的演员,允许我提取项目1和项目3.

some text/more text
(formula)/dividethis
divideme/(byme)
"dont match/me"
Run Code Online (Sandbox Code Playgroud)

python regex r

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

标签 统计

r ×4

data.table ×2

ggplot2 ×1

php ×1

python ×1

regex ×1

serialization ×1