小编Ann*_*lli的帖子

仅将as.numeric应用于可强制转换为数字的列表元素(在R中)

我有一个函数,它返回一个包含单个字符向量的列表,我想将其转换为数字.大多数情况下,列表中的所有元素都可以轻松地强制为数字:

所以一个简单的lapply(x, FUN = as.numeric)工作正常.

例如

l <- list(a = c("1","1"), b = c("2","2"))
l
$a
[1] "1" "1"

$b
[1] "2" "2"


lapply(l, FUN = as.numeric)
$a
[1] 1 1

$b
[1] 2 2
Run Code Online (Sandbox Code Playgroud)

但是,在某些情况下,矢量包含真实字符:

例如

l <- list(a = c("1","1"), b = c("a","b"))
l
$a
[1] "1" "1"

$b
[1] "a" "b"


lapply(l, FUN = as.numeric)
$a
[1] 1 1

$b
[1] NA NA
Run Code Online (Sandbox Code Playgroud)

我带来的解决方案有效,但感觉有点复杂:

l.id <- unlist(lapply(l, FUN = function(x){all(!is.na(suppressWarnings(as.numeric(x))))}))

l.id
 a     b 
 TRUE  FALSE …
Run Code Online (Sandbox Code Playgroud)

r

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

使用 c() 增长向量与 R 中的赋值之间的性能差异

我正在尝试整理一些关于 R 中循环增长数据结构的危险的材料for。我希望能够解释导致性能差异的幕后原因,尤其是方法中巨大的内存差异。

\n

我对比了 3 种方法:

\n
    \n
  • 通过使用该c()函数来增长结果向量。
  • \n
  • 通过分配来增长结果向量。
  • \n
  • 预分配结果向量。
  • \n
\n

考虑以下表示:

\n
library(pryr)\n\nx <- runif(10, min = 1, max = 100)\n\n# Create function that appends to result vector through c\nfor_loop_c <- function(x, print = TRUE) {\n    y <- NULL\n    for (i in seq_along(x)) {\n        y <- c(y, sqrt(x[i]))\n        if (print) {\n            print(c(address(y), refs(y)))\n        }\n    }\n    y\n}\n# Create function that appends to result vector through assignment\nfor_loop_assign <- function(x, print = TRUE) …
Run Code Online (Sandbox Code Playgroud)

memory performance r

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

偏斜特征最合适的归一化/变换方法?

我正在尝试预处理生物数据以训练神经网络,尽管对各种归一化方法进行了广泛的搜索和重复演示,但我并不知道应该使用哪种方法.特别是我有许多输入变量,它们是正偏态的,并且一直试图确定是否存在最合适的归一化方法.

我还担心这些输入的性质是否会影响网络的性能,因此已经尝试过数据转换(特别是日志转换).但是,有些输入有很多零,但也可能是小的十进制值,并且似乎受到log(x + 1)(或者从1到0.0000001的任何数字)的高度影响,结果分布未能接近正常(或者仍然是倾斜或变为双峰,在最小值处具有尖峰).

这些与神经网络有关吗?即.我应该使用特定的特征转换/规范化方法来解释偏斜的数据,还是应该忽略它并选择规范化方法并推进?

对此事的任何建议将不胜感激!

谢谢!

machine-learning normalization biological-neural-network neural-network

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

将日期映射到ggplot2中的viridis色标

我正在尝试将日期映射到viridis ggplot2中色标。默认ggplot色标适用于日期。但是我在将它们映射到viridis比例尺时遇到了麻烦,遇到了有关未提供“原产地”的错误as.Date.numeric()(尝试使用时出现类似错误ggplot2::scale_color_gradient())。请参阅下面的reprex。

关于最有效的方式进行分类的任何建议吗?


### data
df <- structure(list(height = c(182.87, 179.12, 169.15, 175.66, 164.47, 
158.27, 161.69, 165.84, 181.32, 167.37, 160.06, 166.48, 175.39, 
164.7, 163.79, 181.13, 169.24, 176.22, 174.09, 180.11, 179.24, 
161.92, 169.85, 160.57, 168.24, 177.75, 183.21, 167.75, 181.15, 
181.56, 160.03, 165.62, 181.64, 159.67, 177.03, 163.35, 175.21, 
160.8, 166.46, 157.95, 180.61, 159.52, 163.01, 165.8, 170.03, 
157.16, 164.58, 163.47, 185.43, 165.34, 163.45, 163.97, 161.38, 
160.09, 178.64, 159.78, 161.57, 161.83, …
Run Code Online (Sandbox Code Playgroud)

r date ggplot2 viridis

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