小编rco*_*rty的帖子

即使列表为空,也强制json转储json对象

我有一个列表,可能是空的或非空的.

我想创建一个新文件,其中包含该列表的格式是人类可读的,并且我的下一个脚本很容易解析.在列表非空的情况下,这工作正常,我的下一个脚本读入json文件.但是当列表为空时,我得到"ValueError:没有JSON对象可以被解码".这是有道理的,因为当我打开文件时,确实没有内容,因此没有JSON对象.

有些列表是空的,我很好.所以,要么我想写一个空的JSON对象,要么我希望我的阅读器脚本没有找到JSON对象.

这是相关的代码:

作家脚本

favColor = []   OR   favColor = ['blue']   OR favColor = ['blue', 'green']
fileName = 'favoriteColor.json'
outFile = open(fileName, 'w')
json.dump(outFile, favColor)
outFile.close()
Run Code Online (Sandbox Code Playgroud)

读者脚本

fileName = 'favoriteColor.json'
inFile = open(fileName, 'r')
colors = json.load(inFile)
inFile.close()
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议非常感谢.如果我需要提供更多理由来说明我为什么这样做,我也可以提供这个,只是想我开始时只需要最少的理解问题.

python json

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

如何确定我的R安装使用的矩阵库?

在我的大学使用我无法在本地计算机上重现的计算机群集时出现矩阵错误.我认为这可能是由于矩阵库(BLAS,LAPACK,ATLAS等)的不同.除了我在这里阅读的内容之外,我对这些库知之甚少,但我认为应该有办法让R告诉我它安装了哪些矩阵库(即它使用的是哪些),类似的到sessionInfo()告诉我它使用的是哪个版本的R包.

r build blas lapack atlas

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

如何将R公式中的一个项替换为两个?

我有类似的东西

y ~ x + z
Run Code Online (Sandbox Code Playgroud)

我想将其转化为

y ~ x_part1 + x_part2 + z
Run Code Online (Sandbox Code Playgroud)

更一般地说,我希望有一个函数,它接受一个公式并返回该公式,所有匹配"^ x $"的项被"x_part1"和"x_part2"替换.这是我目前的解决方案,但它只是感觉如此kludgey ...

my.formula <- fruit ~ apple + banana
var.to.replace <- 'apple'
my.terms <- labels(terms(my.formula))
new.terms <- paste0('(', 
                    paste0(var.to.replace, 
                           c('_part1', '_part2'),
                           collapse = '+'),
                    ')')
new.formula <- reformulate(termlabels = gsub(pattern = var.to.replace,
                                             replacement = new.terms,
                                             x = my.terms),                                 
                           response = my.formula[[2]])
Run Code Online (Sandbox Code Playgroud)

另一个警告是输入公式可以通过交互指定.

y ~ b*x + z
Run Code Online (Sandbox Code Playgroud)

应输出这些(等效)公式之一

y ~ b*(x_part1 + x_part2) + z
y ~ b + (x_part1 + x_part2) + b:(x_part1 …
Run Code Online (Sandbox Code Playgroud)

r formula

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

如何在knitr文档中设置图形参数(par())和结构选项(strOptions())?

我正在编写knitr-sweave文档,并发现全局R选项之类的

par(lwd=3)
Run Code Online (Sandbox Code Playgroud)

strOptions(strict.width='cut')
Run Code Online (Sandbox Code Playgroud)

不要在以后的代码块中生效.我可以在每次绘制plot()或str()时将这些选项指定为参数,因此这不是一个大问题.我只是想知道是否有人对此有任何见解.我应该缓存我设置这些选项的代码块吗?我在早期代码块中调用了一些库,并在其他代码中设置变量,它们似乎都可以"全局"访问(即在以后的代码块中).

r knitr

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

如何在 R 中的数字系统之间进行转换?

我看到有一个内置函数...相当抽象...使用从十进制表示形式转换为罗马数字(将罗马数字转换为 R 中的数字),但我找不到从十进制转换为其他类似系统的内置方法,例如基数 3 或基数 11。我发现二进制和十六进制(基数 16)得到了很好的支持,但是是否有一个包可以用于与任意位置数字之间的转换系统。

我可以制作这样一个包,但我怀疑它已经存在,而我的 google-fu 只是不够?

r numeral-system

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

ggplot认为美学不是通过`aes()`制作的,但确实如此

ggplot2经常使用,我不得不说这个让我感到困惑.

脚本是:

library(tidyverse)

data_frame(value = rbinom(n = 100, size = 100, prob = 0.3)) %>%
  ggplot(mapping = aes(x = value)) %>%
  geom_histogram()

sessionInfo()
Run Code Online (Sandbox Code Playgroud)

输出是:

> library(tidyverse)
Loading tidyverse: ggplot2
Loading tidyverse: tibble
Loading tidyverse: tidyr
Loading tidyverse: readr
Loading tidyverse: purrr
Loading tidyverse: dplyr
Conflicts with tidy packages -------------------------------------------------------
filter(): dplyr, stats
lag():    dplyr, stats
> 
> data_frame(value = rbinom(n = 100, size = 100, prob = 0.3)) %>%
+   ggplot(mapping = aes(x = value)) %>%
+   geom_histogram() …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 aesthetics

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

如何在 ggplots 中维护配色方案,同时删除每个图中未使用的级别?

我想比较一个图中我的数据的一些子组和另一个图中的一些其他子组。如果我将所有子组都绘制成一个图,这个数字是压倒性的,每个单独的比较都变得困难。我认为如果给定的子组在所有图中使用相同的颜色,对读者来说会更有意义。

这是我尝试过的两件事,几乎可以工作,但都不太奏效。他们离我最接近 MWE 了!

错误,因为所有三个级别都显示在图例中

library(tidyverse)

# compare first and second species
ggplot(data = iris %>% filter(Species != 'virginica'),
       mapping = aes(x = Sepal.Length,
                     y = Sepal.Width,
                     color = Species)) +
  geom_point() +
  scale_color_discrete(drop = FALSE)


# compare second and third species
ggplot(data = iris %>% filter(Species != 'setosa'),
       mapping = aes(x = Sepal.Length,
                     y = Sepal.Width,
                     color = Species)) +
  geom_point() +
  scale_color_discrete(drop = FALSE)
Run Code Online (Sandbox Code Playgroud)

请注意,未绘制的级别仍然出现在图例中(与 drop = FALSE 的想法一致)。

错误,因为第二个图没有保持第一个图建立的物种颜色映射

# compare first and second species
ggplot(data = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 aesthetics

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

标签 统计

r ×6

aesthetics ×2

ggplot2 ×2

atlas ×1

blas ×1

build ×1

formula ×1

json ×1

knitr ×1

lapack ×1

numeral-system ×1

python ×1