小编ste*_*ano的帖子

将前导零填充到公共宽度

我正在处理一个小时格式的数据库,如:

HOUR ID
1  2
10 4
5  6
20 6
Run Code Online (Sandbox Code Playgroud)

我想在1个字符的值中放置零,并将它们存储在名为NHOUR的新列中,如:

NHOUR HOUR ID
01 1  2
10 10 4
05 5 6
20 20 6
Run Code Online (Sandbox Code Playgroud)

到目前为止,我正在努力解决类似问题(我在论坛中遵循了已经为ifelse提供的一些建议):

DB$NHOUR<-with(DB,ifelse(nchar(HOUR,type="chars")==1),sprintf("%02d",HOUR),as.numeric(HOUR))
Run Code Online (Sandbox Code Playgroud)

但没有任何成功!R总是报告"是"元素未指定等.

一如既往,任何提示都表示赞赏!

r

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

为什么R在应用as.numeric时丢弃十进制?

大家好,我有以下数据库:

ID Distance
M1_PRM    54,56
M1_PRM  4147,69
M1_PRM  1723,34
Run Code Online (Sandbox Code Playgroud)

我使用以下脚本替换"."中的",".在距离中,因为R不喜欢","(并且它有效):

mysub<-function(x)(sub(",",".",x))
DB<-(apply(DB, 2,mysub))
DB<-data.frame(DB)
Run Code Online (Sandbox Code Playgroud)

然后我需要转换DB $ Distance as.numeric因为我需要 tapply与sum一起使用,例如:

apply(DB$Distance,ID,sum)
Run Code Online (Sandbox Code Playgroud)

当我给

DB$Distance<-as.numeric(DB$Distance)

ID Distance
M1_PRM 54
M1_PRM 4147
M1_PRM 1723
Run Code Online (Sandbox Code Playgroud)

似乎R丢弃小数!有人知道出了什么问题吗?提前致谢!

r decimal

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

如何将十进制转换为POSIX时间

我使用此处的函数来计算日出和日落,然后返回:

         sunrise           sunset
6.49055593325792 18.2873900837081
Run Code Online (Sandbox Code Playgroud)

我很努力(与尝试strftime,POSIXctas.Date功能),将其转换为实时,但至今没有成功.

一如既往,非常感谢任何建议.

time r decimal

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

根据其他变量生成R中的数字序列

我有问题根据另外两个变量生成一个数字序列.具体来说,我有以下数据库(我真正的数据库不是那么平衡!):

ID1=rep((1:1),20)
ID2=rep((2:2),20)
ID3=rep((3:3),20)
ID<-c(ID1,ID2,ID3)
DATE1=rep("2013-1-1",10)
DATE2=rep("2013-1-2",10)
DATE=c(DATE1,DATE2)
IN<-data.frame(ID,DATE=rep(DATE,3))
Run Code Online (Sandbox Code Playgroud)

我想根据每个DATE每个ID的观察次数生成一个数字序列,如下所示:

OUTPUT<-data.frame(ID,DATE=rep(DATE,3),N=rep(rep(seq(1:10),2),3))
Run Code Online (Sandbox Code Playgroud)

奇怪的是,我尝试以下解决方案适用于上面提供的数据库,但不适用于真正的数据库!

IN$UNIQUE<-with(IN,as.numeric(interaction(IN$ID,IN$DATE,drop=TRUE,lex.order=TRUE)))#generate unique value for the combination of id and date
PROG<-tapply(IN$DATE,IN$UNIQUE,seq)#generate the sequence
OUTPUT$SEQ<-c(sapply(PROG,"["))#concatenate the sequence in just one vector
Run Code Online (Sandbox Code Playgroud)

现在,我无法理解为什么解决方案不适用于真正的数据库,因为任何提示都非常感谢!

这里有一个数据集的例子(只包含一个ID):

  id       date
  1  F2_G 2005-03-09
  2  F2_G 2005-06-18
  3  F2_G 2005-06-18
  4  F2_G 2005-06-18
  5  F2_G 2005-06-19
  6  F2_G 2005-06-19
  7  F2_G 2005-06-19
  8  F2_G 2005-06-19
  9  F2_G 2005-06-20
Run Code Online (Sandbox Code Playgroud)

variables r sequence

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

标签 统计

r ×4

decimal ×2

sequence ×1

time ×1

variables ×1