小编scr*_*Owl的帖子

R/POSIX控制结果格式(秒,分钟,小时)

我正在使用POSIXctR中的一些对象,并且想知道如何控制答案的格式.

train$targetVar1 <- as.numeric(as.POSIXct(as.character(string1),tz="UTC") - as.POSIXct(as.character(string2),tz="UTC"))
Run Code Online (Sandbox Code Playgroud)

答案似乎弹出sec,minhr数据没有明显的关系.

我看着使用POSIXlt帮助文件使它听起来像lt对象为每个时间尺度创建一个向量,但无法弄清楚如何使用各种方法访问向量,如:

> posixObj1 <- as.POSIXlt("2012-12-12 12:00:00")
> posixObj1$sec
[1] 0
> posixObj1$min
[1] 0
> posixObj1$hour
[1] 12

> x <- as.POSIXlt("2012-12-12")
> x
[1] "2012-12-12"
> format(x, "%s")
[1] ""
Run Code Online (Sandbox Code Playgroud)

有什么建议?

注意:我在Windows 7机器上运行R 2.15.1.

datetime r posixct

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

有多少种方法可以生成将varchar转换为不会被ISNUMERIC()捕获的数字的错误?

我在加载大量的表到SQL Server,并从它们转换的过程中varchar,以特定的数据类型(int,date,等).令人沮丧的是,有多少种不同的方法可以打破从字符串到数字(int,decimal等)的转换,并且没有一种简单的诊断工具来查找有问题的行(除此之外ISNUMERIC()不能一直工作).

这是我打破转换的方法列表,不会被抓住ISNUMERIC().

  • 该字符串包含科学记数法(即3.55E-10)
  • 该字符串包含空格('')
  • 该字符串包含一个非字母数字符号('$',' - ',',')

这是我目前正在使用的补偿:

SELECT 
    CASE 
       WHEN [MyColumn] IN ('','-') THEN NULL    -- deals with blanks
       WHEN [MyColumn] LIKE '%E%' THEN CONVERT(DECIMAL(20, 4), CONVERT(FLOAT(53), [MyColumn]))            -- deals with scientific notation
       ELSE CAST(REPLACE(REPLACE([MyColumn] , '$', ''), '-', '') AS DECIMAL(20, 4)) 
    END [MyColumn]             -- deals with special characters
FROM 
    MyTable
Run Code Online (Sandbox Code Playgroud)

有没有其他人有其他人?还是好的诊断方法?

sql sql-server

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

R格式回答时差

我试图将答案减去2次.

这是一个例子:

> timer2$tdif2 <- as.numeric(strptime(as.character(timer2$time3), "%H:%M:%S:%OS") - strptime(as.character(timer2$time2), "%H:%M:%S:%OS"))
> timer2$tdif1 <- as.numeric(strptime(as.character(timer2$time2), "%H:%M:%S%OS") - strptime(as.character(timer2$time1), "%H:%M:%S%OS"))
> timer2$tdif2 <- as.numeric(strptime(as.character(timer2$time3), "%H:%M:%S:%OS") - strptime(as.character(timer2$time2), "%H:%M:%S:%OS"))
> timer2$tdifMax <- as.numeric(strptime(as.character(timer2$time3), "%H:%M:%S.%OS") - strptime(as.character(timer2$time1), "%H:%M:%S.%OS"))
> head(timer2)
         time1        time2        time3         tdif1 tdif2 tdifMax
1 08:00:20.799 08:00:20.799 08:00:20.799  0.0000000000    NA       0
2 08:00:21.996 08:00:22.071 08:00:23.821 -0.9249999523    NA       2
3 08:00:29.200 08:00:29.200 08:00:29.591  0.0000000000    NA       0
4 08:00:31.073 08:00:31.372 08:00:31.384  0.2990000248    NA       0
5 08:00:31.867 08:00:31.867 08:00:31.971  0.0000000000    NA       0
6 08:00:37.174 08:00:38.073 …
Run Code Online (Sandbox Code Playgroud)

r strptime zoo xts

0
推荐指数
1
解决办法
743
查看次数

SQL Server 2008 R2 Express删除输出文件中的页脚

我正在使用SQL Server SSMS输出查询到空格分隔的文本文件.除了一个例外,它工作正常.在文件的底部,它打印一条消息,显示它打印的行数,就像查询路由到结果网格时一样SSMS:

  id         sales       region
 001          100,000       North
 001          100,000       North
 001          100,000       North
 001          100,000       North
 001          100,000       North
 ...             ...         ...


(78482 row(s) affected)
Run Code Online (Sandbox Code Playgroud)

这是一个问题,因为有多个文件,它们被读入另一个程序,此消息导致错误.

我查看了输出和查询选项,但没有看到任何解决方法.

有什么建议?

sql sql-server ssms

0
推荐指数
1
解决办法
588
查看次数

R摆脱单引号字符

我有一个我正在尝试处理的字符串向量,但我无法摆脱一些奇怪的字符.

当我读取csv文件时,我使用了以下行:

train <- read.csv(file="files/file1.csv", header = T, encoding = "UTF-8")
Run Code Online (Sandbox Code Playgroud)

我用这一行试图摆脱标点符号:

train$var1 <- gsub("[[:punct:]]", " ", train$var1)
Run Code Online (Sandbox Code Playgroud)

但是在运行之后的检查中,我仍然看到奇怪的单引号,'...'和黑点像密码隐藏字符.这是输入:

dput(unique(unlist(var1List))[c(30242:30246, 30561, 30484)])
c("opportunity…", "about…", "expected…", "reward…", "us…", "‘as", 
"<U+25CF>")
Run Code Online (Sandbox Code Playgroud)

有什么建议摆脱这些人物?

regex encoding r utf

0
推荐指数
1
解决办法
379
查看次数

R sapply vs apply vs lapply + as.data.frame

我正在使用一些Date列并尝试清理显然不正确的日期.我用这里safe.ifelse提到的函数编写了一个函数.

这是我的玩具数据集:

df1 <- data.frame(id = 1:25
    , month1 = seq(as.Date('2012-01-01'), as.Date('2014-01-01'), by = 'month'  )
    , month2 = seq(as.Date('2012-01-01'), as.Date('2014-01-01'), by = 'month'  )
    , month3 = seq(as.Date('2012-01-01'), as.Date('2014-01-01'), by = 'month'  )
    , letter1 = letters[1:25]
    )
Run Code Online (Sandbox Code Playgroud)

这适用于单个列:

df1$month1 <- safe.ifelse(df1$month1 > as.Date('2013-10-01'), as.Date('2013-10-01'), df1$month1)
Run Code Online (Sandbox Code Playgroud)

由于我有多个列,我想使用一个函数并应用于立即处理所有Date列:

capDate <- function(x){
today1 <- Sys.Date()
    safe.ifelse <- function(cond, yes, no){ class.y <- class(yes)
                                  X <- ifelse(cond,yes,no)
                                  class(X) <-class.y; return(X)}

    x <- safe.ifelse(as.Date(x) > as.Date(today1), …
Run Code Online (Sandbox Code Playgroud)

r date apply plyr lapply

0
推荐指数
1
解决办法
1661
查看次数

R将YYMMDD转换为日期

我有YYMMDDHH格式的数据,但试图获取工作日,所以我需要使用日期格式,但无法弄清楚。

这是相关数据的讨论:

structure(list(id = c(7927751403363142656, 18236986451472797696, 
5654946373641778176, 14195690822403907584, 1693303484298446848, 
1.1362181921561e+19, 11694645532962195456, 1221431312630614784, 
1987127670789791488, 379819848497418688), hour = c(14102118L, 
14102217L, 14102812L, 14102912L, 14102820L, 14102401L, 14102117L, 
14102312L, 14102301L, 14102414L)), .Names = c("id", "hour"), row.names = c(3620479L, 
8510796L, 29632625L, 34450879L, 31874113L, 13420799L, 3332671L, 
11543560L, 9602012L, 15574701L), class = "data.frame")
Run Code Online (Sandbox Code Playgroud)

当我使用时:

dat2$dow <- as.Date(substr(as.character(dat2$hour), 1,6), format = '%Y%m%d')
Run Code Online (Sandbox Code Playgroud)

我刚拿到NA。有什么建议么?

r date

0
推荐指数
1
解决办法
530
查看次数

R - 将nan转换为0导致全0

我有一个包含NaN的数据框,我想将其转换为0.我写了一个我觉得应该工作的函数:

fix_nan <- function(x){
    return(x[is.nan(x)] <- 0)
}
Run Code Online (Sandbox Code Playgroud)

然后我将它应用于数据框:

train_e <- structure(list(pack_id = structure(1:10, .Label = c("1", "2", 
"4", "5", "7", "8", "9", "10", "11", "14"), class = "factor"), 
    item_1 = c(0, 0, 0, 0, 0, 0, 0, 0, 0, 0), item_2 = c(NaN, 
    NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN, NaN), item_3 = c(1.45225232891169, 
    0.613104472886409, NaN, 1.02450431651439, 0.735706794978741, 
    0.741937344729377, NaN, 0.83034830207343, 0.97650959186721, 
    0.750305594399894), item_4 = c(0.645137961373585, 0.615792803650477, 
    Inf, 0.752866415261568, 0.84901755126673, 0.646398200985872, 
    Inf, 0.786548355648346, 0.725113372622438, 0.709897990984761
    ), item_5 = …
Run Code Online (Sandbox Code Playgroud)

r nan na

0
推荐指数
1
解决办法
2029
查看次数

R - 将 Excel 工作簿拆分为 csv 文件

在 R 中,有没有办法读取 Excel 工作簿,然后将每个工作表写入单独的 csv 文件?我查看了“xlsx”和“XLConnect”包,但找不到任何有用的东西。

excel r

0
推荐指数
1
解决办法
1578
查看次数

标签 统计

r ×7

date ×2

sql ×2

sql-server ×2

apply ×1

datetime ×1

encoding ×1

excel ×1

lapply ×1

na ×1

nan ×1

plyr ×1

posixct ×1

regex ×1

ssms ×1

strptime ×1

utf ×1

xts ×1

zoo ×1