小编D. *_*der的帖子

如何在SAS中绘制简单的线图

我的数据结构如下(这些只是示例数据,因为原始数据是秘密的)

id | crime   | location | crimedate
------------------------------
1  | Theft   | public   | 2019-01-04
1  | Theft   | public   | 2019-02-06
1  | Theft   | public   | 2019-02-20
1  | Theft   | private  | 2019-03-10
1  | Theft   | private  | 2019-03-21
1  | Theft   | public   | 2019-03-01
1  | Theft   | private  | 2019-03-14
1  | Theft   | public   | 2019-06-15
1  | Murder  | private  | 2019-01-04
1  | Murder  | private  | 2019-10-20
1 …
Run Code Online (Sandbox Code Playgroud)

aggregate sas timeserieschart sgplot

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

在时间序列图中标记一段时间

首先,让我们创建一些假数据:

d <- c("2019-01-01", "2019-01-02", "2019-01-03", "2019-01-04", "2019-01-03", "2019-04-06", "2019-04-03", "2019-05-07", "2019-05-03", "2019-05-03", "2019-05-03", "2019-05-03", "2019-06-03", "2019-06-03", "2019-06-03", "2019-06-03", "2019-06-03", "2019-06-03", "2019-06-03", "2019-07-03", "2019-07-03", "2019-07-04", "2019-08-03", "2019-09-05", "2019-09-03", "2019-09-03", "2019-09-06", "2019-09-08", "2019-10-03", "2019-11-03", "2019-11-03", "2019-11-03", "2019-11-03", "2019-11-03", "2019-11-03", "2019-12-03", "2019-12-03")

df <- data.frame(dates=as.Date(d))
Run Code Online (Sandbox Code Playgroud)

现在,我创建一个时间序列图:

# aggregate data
df_plot <- df %>% mutate(month = lubridate::floor_date(dates, "month")) %>% 
  group_by(month) %>% summarise(count = n())

# plot data
ggplot(aes(x = month, y = count), data = df_plot) + geom_line() +
  scale_x_date() +
  geom_vline(xintercept = …
Run Code Online (Sandbox Code Playgroud)

r time-series ggplot2 geom-vline

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

使用 mutate 和starts_with

我想根据某些变量是否以某个字符串序列开头来更改它们的值。

例子:

df <- data.frame(var1 = c("12345", "12345", "12345", "23456", "23456"))
df %>% mutate(var2 = ifelse(starts_with("123"), "ok", "not ok"))
Run Code Online (Sandbox Code Playgroud)

所有以“123”开头的值都应更改为“ok”。我怎样才能starts_with()与结合mutate()

谢谢!

r dplyr

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

计算 data.frame/tibble 中的成对变量差异

我有以下数据框,由在两个不同时间(t1 和 t2)测量的不同变量(A、X、L)组成。当然,在真实的数据中还有更多的变量(只是为了举例)

\n
n <- 100\n\ndf <- data.frame(A_t1 = runif(n, min = 1, max = 5),\n                 A_t2 = runif(n, min = 1, max = 5),\n                 X_t1 = runif(n, min = 1, max = 5),\n                 X_t2 = runif(n, min = 1, max = 5),\n                 L_t1 = runif(n, min = 1, max = 5),\n                 L_t2 = runif(n, min = 1, max = 5)\n) %>% pivot_longer(cols = starts_with(c("A", "X", "L")))\n\n> df\n# A tibble: 600 \xc3\x97 2\n   name  value\n   <chr> <dbl>\n 1 A_t1 …
Run Code Online (Sandbox Code Playgroud)

r plyr tidyr

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

as.Date 有两位数的年份

如果我出于某种原因将日期10.10.61(DD.MM.YY)as.Date(date, format="%d.%m.%y")转换为2061 -10-10

有没有一种优雅的方法来纠正这个问题,还是我必须通过切割字符串并在前面添加“19”来手动完成?

我也试过zoo包,它带来了相同(错误)的结果。

r date as.date

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

SAS:ODS EXCEL(如何命名不同的工作表)

我想导出一个由PROC TABULATE. 我的代码是这样的:

ODS EXCEL FILE="myFile.xlsx" (options sheet_name="CRIME TYPE");

  PROC TABULATE DATA=myData;
    TITLE 'myTitle';
    BY crime_type;
    CLASS year;
    CLASS nation / ORDER=FREQ;
    TABLES year, nationality / CONDENSE;
  RUN;

ODS EXCEL CLOSE;
Run Code Online (Sandbox Code Playgroud)

这为我创建了一个包含不同工作表的 excel 文件:

THEFT     
      country1  country2 country3 ...
--------------------------------------
1990           
1991
1992
--------------------------------------



ASSAULT  
      country1  country2 country3 ...
--------------------------------------
1990           
1991
1992
--------------------------------------
Run Code Online (Sandbox Code Playgroud)

不幸的是,这些表没有不同罪行(盗窃、袭击等)的名称,而是被称为“犯罪类型 1”、“犯罪类型 2”等等(SHEET_NAME="CRIME TYPE")。

有谁知道如何根据变量的值命名工作表crime_type

sas proc ods tabulate

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

如何根据其他表中的值编写UPDATE

我有一个关于MySQL中"更新"的问题.我有两张桌子table1并且table2已连接table1.id=table2.tab1.现在,我想table2根据值中的值更新值table1.我试图像这样做:

UPDATE table2 SET table2.val='new value' 
WHERE table1.id=table2.tab1 AND table1.val='xy' 
Run Code Online (Sandbox Code Playgroud)

换句话说,我想更改相应条目的值为'xy'的val所有条目的值.table2table1

不幸的是,这不起作用.有人能给我一个暗示吗?

mysql sql syntax join sql-update

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

访问函数中的全局变量

我有两个data.frames df1errors和功能add_to_errors()。该函数的参数是行数(of df1)的向量,该函数应将选择的行添加到名为的新data.frame中errors

df1 <- data.frame(id=1:10,
                  var1=rep(NA, 2),
                  var2=rep(NA, 2))

errors <- data.frame()

add_to_errors <- function(ids){
    rows_to_add <- df1[ids,]
    errors <- rbind(errors, rows_to_add)
    return(errors)
} 

add_to_errors(c(1,2))
add_to_errors(c(6,7))
Run Code Online (Sandbox Code Playgroud)

当我执行add_to_errors(1, 2)和时add_to_errors(6,7)errors每次调用该函数似乎都被覆盖了。如何errors在函数中作为全局变量访问?

输出应如下所示:

  id var1 var2
1  1   NA   NA
2  2   NA   NA
3  6   NA   NA
4  7   NA   NA 
Run Code Online (Sandbox Code Playgroud)

r function global-variables

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

ggplot:将轴设置为一定范围

我拼命尝试将比例范围设置为 1 到 5。我试图使用ylim(),scale_y_continuous(breaks = seq(1,5,1))coord_cartesian(ylim=c(1,5))。如何才能做到这一点?感谢帮助!

n <- 10000

test <- data.frame(value = sample(1:5, size = n, replace = TRUE),
                   grp = sample(c("A", "B", "C"), size = n, replace = TRUE),
                   item = sample(c("Item1", "Item2", "Item3", "Item4", "Item5", "Item6"), size = n, replace = TRUE)) 
                   
test %>%
  group_by(item, grp) %>%
  summarise(mean = mean(value, na.rm=TRUE)) %>%
  ungroup() %>%
  
  ggplot(aes(x = item, y = mean, group = grp, fill = grp)) +
    geom_col(position = 'dodge') + …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

R-Markdown:kableExtra (loadNamespace) 问题

我想使用 RMarkdown 和 kable 创建一个 pdf 文档:

\n
---\ntitle: "markdown testfile"\nauthor: "author"\ndate: "2023-05-01"\noutput:\n  pdf_document: default\n  html_document: default\n---\n\n```{r setup, include=FALSE}\noptions(repos = list(CRAN="http://cran.rstudio.com/"))\ninstall.packages("tidyverse")\ninstall.packages("kableExtra")\n\nlibrary(tidyverse)\nlibrary(kableExtra)\n```\n\n```{r}\niris %>% \n  dplyr::slice_sample(n = 10) %>% \n  kbl() %>% \n  kable_styling()\n```\n
Run Code Online (Sandbox Code Playgroud)\n

我收到的错误消息是:

\n
Fehler: Laden von Paket oder Namensraum f\xc3\xbcr \'kableExtra\': fehlgeschlagen\n.onLoad in loadNamespace() f\xc3\xbcr \'kableExtra\' fehlgeschlagen, Details:\nAufruf: !is.null(rmarkdown::metadata$output) && rmarkdown::metadata$output %in%\nFehler: \'length = 2\' in coercion to \'logical(1)\'\nAusf\xc3\xbchrung angehalten.\n
Run Code Online (Sandbox Code Playgroud)\n

翻译成英文:

\n
Error: Failed to load package or namespace for \'kableExtra\':\n.onLoad failed in loadNamespace() for \'kableExtra\', Details:\nCall: …
Run Code Online (Sandbox Code Playgroud)

r r-markdown kableextra

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

重组数据框(pivot_wider)

我的 data.frame 又出现了一些问题,我需要重组:

我的数据框如下所示。它描述了三个数据集 (1-3) 以及这三个数据集包含的列名:

df <- data.frame(df =   c(1, 1, 1, 1, 2, 2, 2, 3, 3, 3, 3),
                 vars = c("var1", "var2", "var3", "var4", 
                          "var1", "var1b", "var4", 
                          "var5", "var1", "var2", "var7"))

   df  vars
1   1  var1
2   1  var2
3   1  var3
4   1  var4
5   2  var1
6   2 var1b
7   2  var4
8   3  var5
9   3  var1
10  3  var2
11  3  var7


Run Code Online (Sandbox Code Playgroud)

我的目标是有一个总表所示(该值是不完全从上面的那些),其中1只表示该变量包括在内,2个可变装置不包括在相应的数据帧df1df3

df %>% pivot_wider(names_from = df, values_from …
Run Code Online (Sandbox Code Playgroud)

r tidyverse

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

如何获取一个类的所有实例

我正在学习 Python 作为初学者,我想创建一个类Person。在构造函数中,我想将我创建的每个实例放入一个名为“实例”的集合中。然后我希望instance() 方法返回所有实例。我怎样才能做到这一点?

class Person:

    # Type annotations
    __first_name: str
    __last_name: str
    instances: set

    # Initializing variables
    no_of_persons = 0
    instances = set()

    def __init__(self, firstname="unknown", lastname="unknown"):
        self.__first_name = firstname
        self.__last_name = lastname
        Person.no_of_persons += 1
        Person.instances.add() ## Here I have problems

    @property
    def first_name(self):
        return self.__first_name

    @first_name.setter
    def first_name(self, firstname):
        self.__first_name = firstname

    @property
    def last_name(self, ):
        return self.__last_name 

    @last_name.setter
    def last_name(self, lastname):
        self.__last_name = lastname

    def getFullName(self):
        """ Returns a tuple of the firstname and …
Run Code Online (Sandbox Code Playgroud)

python set instance

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

将换行符插入字符变量

在R中将换行符插入char-Variable的最优雅方法是什么?

例如,我有以下data.frame:

longValues <- c("This is a very long text that should include linebreaks", "And also this is a very long text, that should include linereaks", "And this is an even longer text without linebreaks")
df <- data.frame(longValues)
df
Run Code Online (Sandbox Code Playgroud)

我想创建一个包含与相同值的新变量longValues,但应在一定数量的字符(比如说20)之后插入一个换行符(“ \ n”),但应在两个单词之间插入一个换行符。因此,如果单词中包含20.个字符,则换行符应位于该单词之后。

结果应该是这样的:

df$linebreaks <- c("This is a very long\n 
                 text that should include\n
                 linebreaks", 
                "And also this is a very
                long text, that should\n 
                include linereaks", 
                "And this is an even \n
                longer text without \n
                linebreaks")
Run Code Online (Sandbox Code Playgroud)

r tidyverse

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