小编Jaa*_*aap的帖子

计算一年中的周数(0-53)

我有一个包含位置和日期的数据集.我想计算一年中的周数(00-53),但是使用星期四作为一周的第一天.数据如下所示:

  location <- c(a,b,a,b,a,b)
  date <- c("04-01-2013","26-01-2013","03-02-2013","09-02-2013","20-02-2013","03-03-2013")
  mydf <- data.frame(location, date)
  mydf
Run Code Online (Sandbox Code Playgroud)

我知道有一个strftime函数用于计算一年中的一周,但它只能使用星期一或星期日作为一周的第一天.任何帮助将受到高度赞赏.

r week-number date-arithmetic

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

合并匹配A,B和**C的数据帧?

我有两个这样的数据帧:

set.seed(1)
df <- cbind(expand.grid(x=1:3, y=1:5), time=round(runif(15)*30))
to.merge <- data.frame(x=c(2, 2, 2, 3, 2),
                       y=c(1, 1, 1, 5, 4),
                       time=c(17, 12, 11.6, 22.5, 2),
                       val=letters[1:5],
                       stringsAsFactors=F)
Run Code Online (Sandbox Code Playgroud)

我想合并to.mergedf(with all.x=T)这样:

  • df$x == to.merge$x
  • df$y == to.merge$y
  • abs(df$time - to.merge$time) <= 1; 在多个to.merge满足的情况下,我们选择最小化这个距离的那个.

我怎样才能做到这一点?

所以我想要的结果是(这只是为匹配的行添加df了相应的valueto.merge):

   x y time val
1  1 1    8  NA
2  2 1   11   c
3  3 1   17  NA
4  1 2 …
Run Code Online (Sandbox Code Playgroud)

r

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

将具有混合日期格式的变量转换为一种格式

我的数据帧的示例:

                date
1   25 February 1987
2     20 August 1974
3     9 October 1984
4     18 August 1992
5  19 September 1995
6          16-Oct-63
7          30-Sep-65
8        22 Jan 2008
9         13-11-1961
10    18 August 1987
11         15-Sep-70
12    5 October 1994
13   5 December 1984
14          03/23/87
15    30 August 1988
16        26-10-1993
17    22 August 1989
18         13-Sep-97
Run Code Online (Sandbox Code Playgroud)

我有一个大型数据框,其日期变量有多种日期格式.变量中的大多数格式如上所示 - 还有一些非常罕见的其他格式.有多种格式的原因是数据是从各种网站中提取的,每个网站都使用不同的格式.

我尝试过使用简单的转换,例如

strftime(mydf$date,"%d/%m/%Y")
Run Code Online (Sandbox Code Playgroud)

但如果有多种格式,这些转换将无效.我不想求助于多个gsub类型的编辑.我想知道我是否错过了一个更简单的解决方案?

代码例如:

    structure(list(date = structure(c(12L, 8L, 18L, 6L, 7L, 4L, 14L, 
10L, 1L, 5L, 3L, …
Run Code Online (Sandbox Code Playgroud)

formatting r date

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

将Rstudio视图()内容发送到不同的窗格

使用Rstudio,我试图使用View()命令显示dataFrame.该命令自动将输出发送到"源"象限.

有没有办法将它发送到"工作区"quandrant或"Files,Plots ......"象限?这是我的代码:

qRows <- data.frame( RowQuery = character(0), "BackTest P&L" = character(0), stringsAsFactors=FALSE)
qRows[nrow(qRows) + 1, ] <- c("@sp500(vwpc) | rsi(30) | qcume",  "12%")
View(qRows)
Run Code Online (Sandbox Code Playgroud)

r dataframe rstudio

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

如何知道数据是否是R中的列表或data.frame

我怎么知道R中的数据是列表还是data.frame?

如果我用typeof(x)它说列表,如果我用class(x)它说data.frame?

r list dataframe

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

使用ggplot2在堆积条形图中对分类数据进行排序

我有一个包含以下条目的矩阵:

dput(MilDis[1:200,])
structure(list(hhDomMil = c("HED", "ETB", "HED", "ETB", "PER", 
"BUM", "EXP", "TRA", "TRA", "PMA", "MAT", "MAT", "KON", "ETB", 
"PMA", "PMA", "HED", "BUM", "BUM", "HED", "PMA", "PMA", "HED", 
"TRA", "BUM", "EXP", "BUM", "PMA", "ETB", "MAT", "ETB", "ETB", 
"KON", "MAT", "TRA", "BUM", "BUM", "TRA", "TRA", "PMA", "PMA", 
"PMA", "MAT", "ETB", "TRA", "BUM", "TRA", "MAT", "BUM", "ETB", 
"TRA", "TRA", "BUM", "KON", "ETB", "ETB", "ETB", "BUM", "KON", 
"ETB", "ETB", "PMA", "TRA", "PER", "PER", "MAT", "HED", "KON", 
"TRA", "TRA", "TRA", "EXP", "TRA", "BUM", "MAT", "MAT", …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 geom-bar

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

生成用于交叉验证的集合

如何使用R自动拆分矩阵进行5倍交叉验证?我实际上想要生成5组(test_matrix_indices,train matrix_indices).

r

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

如何将字符串拆分为具有1/0值标志的列向量?

我有这样的角色矢量:

a <- c("a,b,c", "a,b", "a,b,c,d")

我想要做的是创建一个如下所示的数据框:

   a    b    c    d
1] 1    1    1    0
2] 1    1    0    0
3] 1    1    1    1
Run Code Online (Sandbox Code Playgroud)

我有一种感觉,我需要使用的某种组合read.tablereshape,但我真的很挣扎.任何和帮助赞赏.

r

13
推荐指数
3
解决办法
828
查看次数

R:使用空方括号轻松分配?X [] < -

在查看最近在SO上发布的答案时,我注意到了一个不熟悉的任务说明.而不是通常的形式 myVar<- myValue,它使用了myVar[]<- myValue.就个人而言,我从未见过这样的作业,但它有一个非常有用的效果 - 它将指定的数据myValue重新塑造为myVar的形状.

我想在我的代码中使用它.然而,文档"<-"似乎是沉默的.

这是一个完善的功能,可以依靠它在所有情况下工作吗?

另外,我的猜测是它可能是函数调用堆栈的副作用,即调用<-[按顺序,但我无法弄清楚如何.有人可以对此有所了解吗?

这是一个例子 -

# A dataframe
df1<- data.frame(a=1:4, b=11:14)

# simple assignment assigns to class of RHS
df1<- c(21:24,31:34)
df1 
#[1] 21 22 23 24 31 32 33 34
class(df1)
#[1] "integer"

#assignment with [] casts to class of LHS 
df1<- data.frame(a=1:4, b=11:14)
df1[]<- c(21:24,31:34)
df1

#    a  b
# 1 21 31
# 2 22 32
# 3 23 33
# 4 …
Run Code Online (Sandbox Code Playgroud)

syntax casting r variable-assignment reshape

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

如何在data.table中"取消列出"列

在我的表中,一些单元格是向量而不是单个值,即列是列表而不是向量:

dt1 <- data.table(
  colA=   c('A1','A2','A3'), 
  colB=list('B1',c('B2a','B2b'),'B3'),
  colC=   c('C1','C2','C3'), 
  colD=   c('D1','D2','D3')
)

dt1
#   colA    colB colC colD
#1:   A1      B1   C1   D1
#2:   A2 B2a,B2b   C2   D2
#3:   A3      B3   C3   D3 
Run Code Online (Sandbox Code Playgroud)

我需要将其重新整理成一个长格式的列表colB.到目前为止我这样做:

dt1[,.(colB=unlist(colB)),by=.(colA,colC,colD)]
#   colA colC colD colB
#1:   A1   C1   D1   B1
#2:   A2   C2   D2  B2a
#3:   A2   C2   D2  B2b
#4:   A3   C3   D3   B3
Run Code Online (Sandbox Code Playgroud)

它完成了工作,但我不喜欢我必须明确指出所有其他列名称by=.有没有更好的方法来做到这一点?
(我确定它已经在其他地方得到了解答,但到目前为止我找不到它)

PS理想情况下我想管理没有任何外部包

r data.table

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