我已经使用SAS很长一段时间了,习惯了输出日志进行了很多评估。现在我是R / Python的学习者,我想知道为什么没有Log。
它不是必需的吗?/是因为它是资源密集型的?/将来是否有机会将其纳入?
答案 0 :(得分:2)
python提供独立使用的库。有一个名为“日志记录”的库。您可以将此库用于日志目的。 点击链接https://docs.python.org/2/library/logging.html
答案 1 :(得分:2)
这是一个合理的问题,因为某些类型的编程实际上需要日志。例如,制药或医疗设备中的任何类型的监管工作都需要程序执行的电子记录。
我发现获得R类似于SAS日志的最佳方法是使用两个软件包:logr和tidylog。 tidylog 将自动发送大多数 dplyr 和 tidyr 功能的消息,而 logr 会将这些消息写入日志文件。 logr 中还具有将内容打印到日志中的功能,类似于SAS%put()语句。这是一个示例:
library(tidyverse)
library(logr)
library(tidylog, warn.conflicts = FALSE)
# Attach logr to tidylog
options("tidylog.display" = list(log_print))
options("logr.on" = TRUE, "logr.notes" = TRUE)
# Open log
log_open("Example1")
log_print("Get list of high mileage vehicles from mtcars")
dat <- mtcars %>%
transmute(vehicle = rownames(mtcars), mpg) %>%
subset(mpg >= 20) %>%
arrange(desc(mpg))
log_print("Print list to log")
log_print(dat)
# Close log
log_close()
# Detach tidylog
options("tidylog.display" = NULL)
生成的日志如下:
=========================================================================
Log Path: ./log/Example1.log
Working Directory: C:/packages/Testing
User Name: User
R Version: 4.0.2 (2020-06-22)
Machine: ZB15-5CD00276ZY x86-64
Operating System: Windows 10 x64 build 18363
Log Start Time: 2020-09-04 08:59:43
=========================================================================
Get list of high mileage vehicles from mtcars
NOTE: Log Print Time: 2020-09-04 08:59:43
NOTE: Elapsed Time in seconds: 0.000997066497802734
transmute: dropped 10 variables (cyl, disp, hp, drat, wt, ?)
NOTE: Log Print Time: 2020-09-04 08:59:43
NOTE: Elapsed Time in seconds: 0.00698089599609375
new variable 'vehicle' (character) with 32 unique values and 0% NA
NOTE: Log Print Time: 2020-09-04 08:59:43
NOTE: Elapsed Time in seconds: 0.0120620727539062
Print list to log
NOTE: Log Print Time: 2020-09-04 08:59:43
NOTE: Elapsed Time in seconds: 0.00692296028137207
vehicle mpg
1 Toyota Corolla 33.9
2 Fiat 128 32.4
3 Honda Civic 30.4
4 Lotus Europa 30.4
5 Fiat X1-9 27.3
6 Porsche 914-2 26.0
7 Merc 240D 24.4
8 Datsun 710 22.8
9 Merc 230 22.8
10 Toyota Corona 21.5
11 Hornet 4 Drive 21.4
12 Volvo 142E 21.4
13 Mazda RX4 21.0
14 Mazda RX4 Wag 21.0
NOTE: Data frame has 14 rows and 2 columns.
NOTE: Log Print Time: 2020-09-04 08:59:43
NOTE: Elapsed Time in seconds: 0.00253605842590332
=========================================================================
Log End Time: 2020-09-04 08:59:43
Log Elapsed Time: 0 00:00:00
=========================================================================
这与在R中访问SAS日志差不多。
答案 2 :(得分:1)
对于R via RStudio,您可以在工作目录所在的任何地方查看.Rhistory文件。