小编Aru*_*run的帖子

计算每个字符串在 R 中出现的次数

给定一个字符串列表,如何计算每个字符串出现的次数?假设我有一个向量x如下:

x <- c('cat','cat','cat','cat','dog','dog','cat','cow')
Run Code Online (Sandbox Code Playgroud)

我想得到的计数为:

# cat : 5
# dog : 2
# cow : 1
Run Code Online (Sandbox Code Playgroud)

我知道答案不会是这样的格式,而是类似的格式。

string r

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

将列表从tapply(.)转换为R中的data.frame

我有以下代码

t <- tapply(z[,3],z[,1],summary)
# > t
# $AUS
#     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
# -0.92420 -0.57920  0.08132 -0.13320  0.35940  0.39650 
# 
# $NZ
#     Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
# -1.80700 -0.98980 -0.98310 -0.57470  0.02292  0.88330 
Run Code Online (Sandbox Code Playgroud)

我希望它显示为

            Min.  1st Qu.   Median     Mean  3rd Qu.     Max.
Aus     -0.92420 -0.57920  0.08132 -0.13320  0.35940  0.39650
NZ      -1.80700 -0.98980 -0.98310 -0.57470  0.02292  0.88330 
Run Code Online (Sandbox Code Playgroud)

如何在R中完成?

r dataframe tapply

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

数据框,错误的摘要

我有一个非常大的数据帧,称为FTSE.在这里他的结构.

str(FTSE)

'data.frame':   21167 obs. of  5 variables:
 $ Name         : Factor w/ 2 levels "FTSE MIB","FTSE MIB NET TOT ": 1 1 1 1 1 1 1 1 1 1 ...
 $ DateLastTrade: Factor w/ 18 levels "12/10/13","12/11/13",..: 9 9 9 9 9 9 9 9 9 9 ...
 $ LastPrice    : num  19091 19008 19002 19018 19018 ...
 $ Open         : num  19091 19091 19091 19091 19091 ...
 $ LastClose    : num  19021 19021 19021 19021 19021 ... …
Run Code Online (Sandbox Code Playgroud)

r summary dataframe

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

如何在批量中将所有因子变量更改为数值变量

我有一个数据框,其中包含大约100个我想要更改为数字类型的因子变量.我怎样才能完成整个数据框?我知道我可以通过使用此代码为每个变量执行此操作:dat$.Var2<-as.numeric(dat$.Var2) 但我想为很多变量执行此操作.这是一个示例数据框.

   dat <- read.table(text = " TargetVar  Tar_Var1    Var2       Var3
     0        0        0         7
     0        0        1         1
     0        1        0         3
     0        1        1         7
     1        0        0         5
     1        0        1         1
     1        1        0         0
     1        1        1         6
     0        0        0         8
     0        0        1         5
     1        1        1         4
     0        0        1         2
     1        0        0         9
     1        1        1         2  ", header = TRUE)
Run Code Online (Sandbox Code Playgroud)

variables r dataframe

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

R如何知道我没有某种类型的条目

我有一张表,其中一个变量是注册国家.

table(df$reg_country)
Run Code Online (Sandbox Code Playgroud)

收益:

   AR    BR    ES    FR    IT
  123   202   578   642   263
Run Code Online (Sandbox Code Playgroud)

现在,如果我将原始表格分组以排除其中一个国家/地区

df_subset<-subset(df, reg_country!='AR')
table(df_subset$reg_country)
Run Code Online (Sandbox Code Playgroud)

收益:

   AR    BR    ES    FR    IT
    0   202   578   642   263
Run Code Online (Sandbox Code Playgroud)

第二个结果对我来说非常令人惊讶,因为R似乎神奇地知道我已经从AR中删除了条目.

为什么会这样?

它是否会影响第二个数据框(df_subset)的大小?如果"是" - 是否有更有效的方法来进行子集以最小化尺寸?

r subset dataframe

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

在R中按长度排序数字向量

我有两个数字向量,我想他们的观察长度排序,即每个观察出现的次数.

例如:

x <- c("a", "a", "a", "b", "b", "b", "b", "c", "e", "e")
Run Code Online (Sandbox Code Playgroud)

在这里,b发生四次,a三次,e两次和c一次.我希望我的结果符合这个顺序.

ans <- c("b", "b", "b", "b", "a", "a", "a", "e", "e", "c")
Run Code Online (Sandbox Code Playgroud)

我试过这个:

x <- x[order(-length(x))] # and some similar lines.
Run Code Online (Sandbox Code Playgroud)

谢谢

r

2
推荐指数
2
解决办法
112
查看次数

在数据帧中按因子分割列

假设我有一个这样的数据框:

v1   v2   v3
a    1    a
a    2    b
a    6    c
b    3    a
b    4    b
b    5    c
Run Code Online (Sandbox Code Playgroud)

其中v1是一个因子,v3是一个字符.我想将一些函数应用于数据框,这样v2在v1中拆分,然后包含在数据框中:

v1   v2   v3   v4   v5
a    1    a    1    NA
a    2    b    2    NA
a    6    c    6    NA
b    3    a    NA   3
b    4    b    NA   4
b    5    c    NA   5
Run Code Online (Sandbox Code Playgroud)

我能够解决的解决方案非常复杂.这样做有一种优雅的方式吗?

(注意:v3的存在是因为任何解决方案都需要能够处理数据帧中应该忽略的其他非数字向量的存在.)

split r plyr dataframe

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

是否找到一种有效的方法来计算两个表中的时间间隔集之间的重叠数?

注意:为了方便起见,我使用上一篇文章中的示例数据集。

假设有两个数据集,refmap。他们是:

ref <- data.table(space=rep('nI',3),t1=c(100,300,500),t2=c(150,400,600),id=letters[1:3])

map <- data.table(space=rep('nI',241),t1=seq(0,1200,by=5),t2=seq(5,1205,by=5),res=rnorm(241))
Run Code Online (Sandbox Code Playgroud)

他们看起来像:

> ref
   space t1  t2   id
1:    nI 100 150  a
2:    nI 300 400  b
3:    nI 500 600  c

> map
   space   t1   t2        res
1:    nI    0    5 -0.7082922
2:    nI    5   10  1.8251041
3:    nI   10   15  0.2076552
4:    nI   15   20  0.8047347
5:    nI   20   25  2.3388920
---                           
237:    nI 1180 1185  1.0229284
238:    nI 1185 1190 -0.3657815
239:    nI 1190 1195 …
Run Code Online (Sandbox Code Playgroud)

r data.table

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

按组汇总所有列

我很肯定这是一个非常简单的答案,但是我似乎无法在多个条件下进行聚合或转换

我有一个看起来像这样的表:

> head(df, n=10L)
   STATE  EVTYPE FATALITIES INJURIES
1     AL TORNADO          0       15
3     AL TORNADO          0        2
4     AL TORNADO          0        2
5     AL TORNADO          0        2
6     AL TORNADO          0        6
7     AL TORNADO          0        1
9     AL TORNADO          1       14
11    AL TORNADO          0        3
12    AL TORNADO          0        3
13    AL TORNADO          1       26
Run Code Online (Sandbox Code Playgroud)

显然,这种情况还在继续...我要做的是在执行过程中按STATE和EVTYPE折叠,以计算致命和伤害,因此,如果这10行是我的有效数据集,那么结果将是一个单行数据帧:

   STATE  EVTYPE FATALITIES INJURIES
1     AL TORNADO          2       74
Run Code Online (Sandbox Code Playgroud)

我的完整框架有很多状态和许多EVTYPE

aggregate r

2
推荐指数
2
解决办法
3236
查看次数

如何在R中的变量中拆分字符串变量(非矩形)

我在数据帧中有以下变量

test<-data.frame(x=c("", "1-7-9", "3", "2-4-6-8"))
Run Code Online (Sandbox Code Playgroud)

我想在变量中拆分:

Var1 Var2 Var3 Var4
NA   NA   NA   NA
1    7    9
3    NA   NA   NA
2    4    6   8
Run Code Online (Sandbox Code Playgroud)

我试过了

 test2<-strsplit(as.character(vartest$x), "\\-")  
Run Code Online (Sandbox Code Playgroud)

但我得到一个列表而不是数据帧

请帮我

string split r dataframe

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

标签 统计

r ×10

dataframe ×6

split ×2

string ×2

aggregate ×1

data.table ×1

plyr ×1

subset ×1

summary ×1

tapply ×1

variables ×1