小编mne*_*nel的帖子

将标点符号转换为空格

我有一堆带有标点符号的字符串,我想将其转换为空格:

"This is a string. In addition, this is a string (with one more)."
Run Code Online (Sandbox Code Playgroud)

会成为:

"This is a string  In addition  this is a string  with one more  "
Run Code Online (Sandbox Code Playgroud)

我可以通过stringrpackage(str_replace_all())一次手动执行此操作(,/./!/(/)/等),但我很好奇是否有更快的方式我假设使用正则表达式.

有什么建议?

regex string r

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

月份日期格式的日期对象

我想知道R是否有办法将此格式转换为任何日期对象.格式为'月[空间]日.例如:Jan 1Jul 29Jul 30.我只是希望将这些示例作为日期对象读取,以便我可以操作它们.

datetime r

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

data.matrix()当涉及角色时

为了计算每个ID的行的最高贡献,我有一个漂亮的脚本,当ID是数字时,它可以工作.然而今天我发现ID也可能有字符(例如ABC10101).要使功能起作用,数据集将转换为矩阵.但是data.matrix(df)不支持字符.是否可以更改代码以使函数能够处理各种ID(字符,数字等)?目前我写了一个快速的解决方法,当ID =字符时将ID转换为数字,但这会减慢大数据集的进程.

代码示例(函数:提取具有最高贡献的第一个条目,因此如果2个条目具有相同的贡献,则选择第一个条目):

注意:在此示例中,ID被解释为因子,data.matrix()将其转换为数值.在下面的代码中,ID列的类型应该是字符,输出应该如下所示.订单ID必须保持不变.

tc <- textConnection('
    ID   contribution   uniqID      
   ABCUD022221       40           101  
   ABCUD022221       40           102 
   ABCUD022222       20           103
   ABCUD022222       10           104
   ABCUD022222       90           105
   ABCUD022223       75           106
   ABCUD022223       15           107
   ABCUD022223       10           108        ')

df <- read.table(tc,header=TRUE)

#Function that needs to be altered
uniqueMaxContr <- function(m, ID = 1, contribution = 2) {
  t(
    vapply(
           split(1:nrow(m), m[,ID]), 
           function(i, x, contribution) x[i, , drop=FALSE]
           [which.max(x[i,contribution]),], m[1,], x=m, contribution=contribution
          )
  )
}

df<-data.matrix(df) #only works when ID is numeric …
Run Code Online (Sandbox Code Playgroud)

r character matrix data.table

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

hist.default(xa)出错:'x'必须是数字

我是一个完整的R初学者,我正在尝试做一些非常基本的东西 - 制作我从Excel导入的两个向量的直方图.

矢量是xa和xb.我尝试了hist(xa),并得到以下错误:

Error in hist.default(xa) : 'x' must be numeric
Run Code Online (Sandbox Code Playgroud)

所以我做了一些搜索,并尝试使用as.numeric(xa)来解决这个问题,并得到:

Error: (list) object cannot be coerced to type 'double'
Run Code Online (Sandbox Code Playgroud)

所以我尝试了as.list函数,但它将我的矢量转换为矩阵.不确定发生了什么.向量中的数字都是约-2和+10之间的4位数.任何帮助将不胜感激!

r histogram

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

如何将一个矩阵的upper.tri与R中另一个矩阵的lower.tri组合?

我有两个相同长度的对称矩阵(一个包含相关系数,另一个包含p值).

我试图建立一个矩阵,使得upper.tri包含相关系数,而lower.tri包含相关的p值.

r matrix

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

ggplot2错误:找不到对象'比率'

我在网上找到了一个代码,必须(将)生成代表美国劳工部的一些数据的图形:劳工统计局:

library(ggplot2)
df <- as.data.frame(read.csv("unemp.csv", colClasses = c("Date", "numeric")))
p <- ggplot(df,aes(x=date,y=ratio))
p + geom_point() + geom_smooth() + xlab("Year") + 
ylab("Civilian Employment Population Ratio (%)") + 
labs(title="Bureau of Labor Statistics Series EMRATIO 
            (seasonally adjusted) to 2012-10-01")
Run Code Online (Sandbox Code Playgroud)

但它不起作用并产生此错误:

Don't know how to automatically pick scale for object of type function. Defaulting to continuous
Error in eval(expr, envir, enclos) : object 'ratio' not found
Run Code Online (Sandbox Code Playgroud)

这段代码中缺少什么?

'unemp.csv'包含来自此处的数据,结果图形必须如下所示.

r ggplot2

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

使用ggplot时"错误:绘图中没有图层"

我得到了一个简单的data.frame(AD0),它有基本的统计值和因子(group):

       mean         se        sd median group
value1 0.725 0.07149951 0.4522026      1     1
value2 0.650 0.07637626 0.4830459      1     2
value3 0.175 0.06084343 0.3848076      0     3
value4 0.375 0.07752171 0.4902903      0     4
Run Code Online (Sandbox Code Playgroud)

我尝试制作一个简单的条形图:

p <- ggplot(AD0, aes(mean,group)) + geom_bar()
Run Code Online (Sandbox Code Playgroud)

但是,我收到消息:"错误:情节中没有图层"这是一件非常简单的事情,我无法理解为什么它不起作用.

如果有人能帮助我,我会很高兴

r ggplot2

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

适合上下百分位线

我有或多或少看起来像这样的数据(不知道如何粘贴图):

library(reshape2)
library(ggplot2)

df <- cbind(runif(2000,0,1000), rep(0,n=2000))
for (i in 1:nrow(df)) {
  df[i,2] <- runif(1, df[i,1], (10000-2*df[i,1])) 
}
colnames(df) <- c("x","y")
df.1 <- melt(data.frame(df), id="x")

p <- ggplot(df.1, aes(x=x, y=value))
p <- p + geom_point()
p <- p + geom_smooth()
p
Run Code Online (Sandbox Code Playgroud)

而不是显示的平滑线,我需要在底部5%的一条直线和在顶部95%的一条直线.一个问题是我有数百万点,所以我认为data.table是一个很好的前进方式:

library(data.table)
dt <- data.table(df)
dt[,xbin:=0]
for (i in 0:100) {
  x1 <- i*100
  x2 <- (i+1)*100
  dt[x>=x1 & x<x2, xbin:=x2]
}
setkey(dt,xbin)
result1.dt <- dt[,list(ymin=min(y), ymax=max(y)), by=key(dt)]
result1.df <- data.frame(result1.dt)

p <- p + geom_line(data=result1.df, aes(x=xbin, y=ymin))
p …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 data.table

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

查找以某个字母开头的所有单词

我在R和正则表达式中都非常生疏.我试过阅读R的正则表达式帮助文件,但它根本没有帮助!

我有一个包含3列的数据框:

  1. 词汇表,即在语料库中找到的500个最常见单词的列表
  2. 计数,单词出现的时间,以及
  3. 概率,计数除以所有字数的总和

列表从最常见到最不常见排列,因此不按字母顺序排列.

我需要为所有以相同字母开头的单词拉出整行.(我不需要循环遍历所有字母表,我只需要一个字母的结果.)

我不只是询问正则表达式,而是如何在R中编写它,所以我将结果放在一个新的数据帧中.

regex string r

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

在R中汇总数据帧或其他对象

我希望这应该是一个简单的问题.我有几个数据框加载到工作区,标记为df01到df100,而不是所有代表的数字.我想在所有数据集中绘制特定列,例如在方框图中.如何使用globbing引用以df开头的所有对象,即:

boxplot(df00$col1, df02$col1, df04$col1)

 = 

boxplot(df*$col1)
Run Code Online (Sandbox Code Playgroud)

glob r object

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

标签 统计

r ×10

ggplot2 ×3

data.table ×2

matrix ×2

regex ×2

string ×2

character ×1

datetime ×1

glob ×1

histogram ×1

object ×1