我有一个函数,它返回一个包含单个字符向量的列表,我想将其转换为数字.大多数情况下,列表中的所有元素都可以轻松地强制为数字:
所以一个简单的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 中循环增长数据结构的危险的材料for。我希望能够解释导致性能差异的幕后原因,尤其是方法中巨大的内存差异。
我对比了 3 种方法:
\nc()函数来增长结果向量。考虑以下表示:
\nlibrary(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) 我正在尝试预处理生物数据以训练神经网络,尽管对各种归一化方法进行了广泛的搜索和重复演示,但我并不知道应该使用哪种方法.特别是我有许多输入变量,它们是正偏态的,并且一直试图确定是否存在最合适的归一化方法.
我还担心这些输入的性质是否会影响网络的性能,因此已经尝试过数据转换(特别是日志转换).但是,有些输入有很多零,但也可能是小的十进制值,并且似乎受到log(x + 1)(或者从1到0.0000001的任何数字)的高度影响,结果分布未能接近正常(或者仍然是倾斜或变为双峰,在最小值处具有尖峰).
这些与神经网络有关吗?即.我应该使用特定的特征转换/规范化方法来解释偏斜的数据,还是应该忽略它并选择规范化方法并推进?
对此事的任何建议将不胜感激!
谢谢!
machine-learning normalization biological-neural-network neural-network
我正在尝试将日期映射到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)