我有一个包含位置和日期的数据集.我想计算一年中的周数(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函数用于计算一年中的一周,但它只能使用星期一或星期日作为一周的第一天.任何帮助将受到高度赞赏.
我有两个这样的数据帧:
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.merge到df(with all.x=T)这样:
df$x == to.merge$x 和df$y == to.merge$y 和abs(df$time - to.merge$time) <= 1; 在多个to.merge满足的情况下,我们选择最小化这个距离的那个.我怎样才能做到这一点?
所以我想要的结果是(这只是为匹配的行添加df了相应的value列to.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) 我的数据帧的示例:
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) 使用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中的数据是列表还是data.frame?
如果我用typeof(x)它说列表,如果我用class(x)它说data.frame?
我有一个包含以下条目的矩阵:
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自动拆分矩阵进行5倍交叉验证?我实际上想要生成5组(test_matrix_indices,train matrix_indices).
我有这样的角色矢量:
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.table和reshape,但我真的很挣扎.任何和帮助赞赏.
在查看最近在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) 在我的表中,一些单元格是向量而不是单个值,即列是列表而不是向量:
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 ×10
dataframe ×2
casting ×1
data.table ×1
date ×1
formatting ×1
geom-bar ×1
ggplot2 ×1
list ×1
reshape ×1
rstudio ×1
syntax ×1
week-number ×1