小编mmy*_*g77的帖子

如何在R中做多行字符串?

我如何使用R在多行上执行一个字符串,等效于以下Python脚本:

string = """
  Because I could
  Not stop for Death
  He gladly stopped for me
  """
Run Code Online (Sandbox Code Playgroud)

这样做的上下文是,我有一个很长的SQL代码,带有一堆换行符和子命令,我想将其作为单个字符串输入以便稍后评估,而手工清理起来将很困难。

r

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

在dplyr中连接两个文本列

我的数据如下所示:

round <- c(rep("A", 3), rep("B", 3))
experiment <- rep(c("V1", "V2", "V3"), 2)
results <- rnorm(mean = 10, n = 6)

df <- data.frame(round, experiment, results)

> df
  round experiment   results
1     A         V1  9.782025
2     A         V2  8.973996
3     A         V3  9.271109
4     B         V1  9.374961
5     B         V2  8.313307
6     B         V3 10.837787
Run Code Online (Sandbox Code Playgroud)

我有一个不同的数据集将与此合并,其中每个组合roundexperiment是一个唯一的行值,即"A_V1".所以我真正想要的是一个name将两列连接在一起的变量.然而,在dplyr中这比我预期的要困难得多.我试过了:

name_mix <- paste0(df$round, "_", df$experiment)
new_df <- df %>%
  mutate(name = name_mix) %>%
  select(name, results)
Run Code Online (Sandbox Code Playgroud)

但是我得到了错误 …

r string-concatenation dplyr

6
推荐指数
3
解决办法
7974
查看次数

将一串数字转换为R中的数字列表

抱歉,如果这个问题太容易了,我知道怎么用Python做,但我现在需要它在R中.

作为SQL查询的一部分,我得到一个带有一些数字的变量(长度可以变化),作为一个字符串,如下所示:

x <- "{0.5,0.25,0.75,0.5}" 
Run Code Online (Sandbox Code Playgroud)

我可以摆脱括号和逗号,因此:

library(stringr)
library(dplyr)
y <- x %>%
  str_remove_all("[{]") %>%
  str_remove_all("[}]") %>%
  strsplit(",")
Run Code Online (Sandbox Code Playgroud)

...但我收到的输出仍然是一个字符串列表:

> y
[[1]]
[1] "0.5"  "0.25" "0.75" "0.5"
Run Code Online (Sandbox Code Playgroud)

如何确保y始终是数字列表?

r

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

如何在 ggplot 中分层轴标签?

我的数据采用以下结构:

month <- c("May", "June", "July", "May", "June", "July")
year <- c("2015", "2015", "2015", "2016", "2016", "2016")
value <- c(1:3, 3:1)
df <- data.frame(month, year, value)
Run Code Online (Sandbox Code Playgroud)

(实际上,这两年的数据都从 1 月到 12 月,这只是一个可重复的简短示例。)

我正在做一个value使用 ggplot的时间序列图(假设我plot.ts()因为太复杂而无法在这里解释的原因而无法使用)。我如何将 x 轴的标签分层,以便每个刻度线都标有月份,但在其下方还有另一个带有年份的标签,所以我得到类似的信息:

-------+-------+-------+----//---+-------+-------+-----
      May     June    July      May     June    July
              2015                      2016
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

在ggplot中绘制同一数据框中的多个变量

我有一个可以这样定义的数据集:

Week <- c("2015_52", "2016_01", "2016_02", "2016_03", "2016_04")
y1 <- runif(5, 0, 1)
y2 <- runif(5, 0, 1)
y3 <- runif(5, 0, 1)
df <- data.frame(Week, y1, y2, y3)
Run Code Online (Sandbox Code Playgroud)

我想在同一个 ggplot 上绘制所有三个 y 随着时间的推移(每个都有手动颜色和线型),但我是 ggplot 新手,以前不需要这样做。尝试模拟 StackOverflow 上类似问题的答案会导致错误。

例如...

library(ggplot2)
ggplot(df, aes(x = Week, y = value, colour = variable)) + 
  geom_line()
Run Code Online (Sandbox Code Playgroud)

...正如在这个问题中给出的错误Error in eval(expr, envir, enclos) : object 'value' not found

但尝试回答这个问题......

ggplot() + 
  geom_line(data = df, 
            aes(x = Week, y = y1, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2

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

当一些输出重复时,如何在pandas中迭代dict

我有一个以州名开头的系列,然后列出该州的某些城市,就像这样......

locations = ['Alabama', 'Auburn', 'Tuscaloosa', 'Alaska', 'Fairbanks', 'Arizona', 'Flagstaff', 'Tempe', 'Tuscon']
Run Code Online (Sandbox Code Playgroud)

和一个带有州名并将它们变成邮政编码的字典,就像这样......

state_codes = {'Alabama': 'AL', 'Alaska': 'AK', 'Arizona': 'AZ'}
Run Code Online (Sandbox Code Playgroud)

我想要的是一个数据框x,每个邮政编码都适用于每个位置,无论该位置是城市还是州...

State              RegionName
'Alabama'          AL
'Auburn'           AL
'Tuscaloosa'       AL
'Alaska'           AK
'Fairbanks'        AK
'Arizona'          AZ
'Flagstaff'        AZ
'Tempe'            AZ
'Tuscon'           AZ
Run Code Online (Sandbox Code Playgroud)

...但我似乎找不到合适的代码让我到那里.我一直在尝试使用一个临时值,只要检测到新的州名,它就会改变:

temp = 'fail'
newAreas = []
for k in range(0, len(locations)):
    if (locations[k] in state_codes.items()):
        temp = state_codes[locations[k]]
    newAreas.append(temp)
Run Code Online (Sandbox Code Playgroud)

...但是这会返回一个完全单词'fail'的列.我究竟做错了什么?

python pandas

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

标签 统计

r ×5

ggplot2 ×2

dplyr ×1

pandas ×1

python ×1

string-concatenation ×1