- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有许多 Excel 文件,我将在将它们另存为 CSV 文件后将它们加载到 R 中。每个 Excel 文件都有几个采用货币格式的列。我可以手动或使用 VBA 调整 Excel 中的每一列,但我更喜欢在 R 中转换变量。我使用 sapply 创建一个矩阵,其中包含新的列值和格式。
我在使用 sapply 结果更改变量时遇到问题。我正在尝试使用 assign
在 for
中建立索引循环,但它不起作用。
这是一个示例数据框和我的代码。你能帮我修一下最后一部分吗?另外,将整个内容放在 for
中会更好吗?循环并跳过 sapply
?我来自 Stata,这是我最了解的方式,但我正在努力学习 apply
职能。
谢谢!
df <- data.frame(Price = c("$1.10", "$2.20", "($3.30)"),
RetailPrice = c("$4.40", "$5.50", "($6.50)"),
stringsAsFactors = FALSE)
to.numeric <- function(var, data){
data[,var] <- gsub("[$,]","", data[,var])
data[,var] <- sub("^\\(","-", data[,var])
data[,var] <- sub("\\)$","", data[,var])
data[,var] <- as.numeric(data[,var])
return(data[,var])
}
currency.vars <- c(
"Price",
"RetailPrice"
)
var.matrix <- sapply(currency.vars, to.numeric, data = df)
#Matrix looks as expected
View(var.matrix)
var.matrix[,1]
var.matrix[,"Price"]
for(i in 1:length(currency.vars)){
#Doesn't work
assign(paste("df[,", currency.vars[i], "]", sep = ""),
paste("var.matrix[,", i, "]", sep = ""))
}
最佳答案
这是一个等效的版本。请注意我们不需要将数据框作为参数传递给我们的函数。我们正在使用 lapply
传递列:
df[currency.vars] <- lapply(
df[currency.vars],
function(x) as.numeric(sub("^\\(","-", gsub("[$,]|\\)$","", x)))
)
Price RetailPrice
1 1.1 4.4
2 2.2 5.5
3 -3.3 -6.5
lapply
有两个重点带数据框:
lapply
在一组选定的数据框列上lapply
结果返回到数据框列 关于r - 如何使用 sapply 结果更新数据框变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28835543/
我是 R 的新手,正在尝试解决其中一个家庭作业问题。我正在练习使用的一组函数是 apply() 系列。具体来说,这道题要求使用 sapply() 函数来计算向量的均值。 稍微设置一下背景。首先,这是我
我有以下数据框- name amarks bmarks cmarks 1 A 25 30 40 2 B 45 78 50 3 C
我们是否有 sapply 的并行版本,因为我们在并行包中有 mclapply,它是 lapply 的一个版本。 最佳答案 正如@RHertel 指出的那样,snow包有应用系列选项,但它不计入 mcs
> system.time(sapply(rnorm(1000000,0,1), function (x) round(x,2))) user system elapsed 2.78
我想用 sapply 或其他应用函数复制一个嵌套循环。我有一个包含 100 只股票的月 yield 的数据集。我想计算每只股票的 t-6 到 t-2 月返回之和。这里 t 代表每个观察值。为此,我创建
我试图将数据集分成具有因子变量和非因子变量的部分。 我正在做类似的事情: 这部分工作: factorCols <- sapply(df1, is.factor) factorDf <- df1[,fa
我正在尝试开始摆脱 R 中的循环,但无法弄清楚如何返回有关 sapply 函数进度的信息。例如,如果我想处理一个向量并打印出我正在处理的行,请使用我编写的循环: vec = c(1:10) out =
我试图总结数据集中许多不同列(变量)的平均值、标准差等。我已经编写了自己的汇总函数来准确返回我需要的内容,并使用 sapply 立即将此函数应用于所有变量。它工作正常,但是返回的数据帧没有列名,我什至
我有一个关于 sapply 的问题在 R 中。在我的示例中,我将其用于留一法交叉验证 ##' Calculates the LOO CV score for given data and regre
我有一个数据集,它是使用 gdata 包中的 cbindX 函数通过列绑定(bind)创建的。此函数允许我绑定(bind)具有不同行数的列。因此,当特定列中没有值时,将引入 NA。现在,我想计算每列的
我有一个名为“d”的 ~1,300,000 行和 4 列的 data.frame 和另一个名为“gc”的 ~12,000 行和 2 列的 data.frame(但请参阅下面的较小示例)。 d sys
我有一个 data.frame 并且想要获取每一列的平均值。我申请了 sapply 并得到了以下 Hour Minute TotalDay TotalHour 0.00
对此的跟进 How to use `[[` and `$` as a function?问题:我开始玩一些原始设置(为简单起见,将大小从 10000 减小到 3) JSON NOSJ[[1]][[1
我想尝试一下模块化算法并编写了一些看似无辜的函数......但对以下意想不到的行为感到非常惊讶: crt crt(1:100, mods = c(5, 7)) [1] 1 2 3 4 0 6 2
我是 R 的新手,并试图用 apply 系列的函数替换一些 for 循环。 我仍然不完全理解它们是如何工作的,但我设法生成了一段工作代码: #create some input data tech t
我想替换数据框列中的缺失值。我写了以下代码 MedianImpute <- function(data=data) { for(i in 1:ncol(data))
这是我正在做的一个例子。 x <- c(a="2",b="4",c="2",d="9") df <- data.frame(names = c("d","c","a","b")) x 是一个命名的值向
我发现要将变量名转换为字符串,我会使用 deparse(substitute(x))哪里x是我的变量名。但是,如果我想在 sapply 函数调用中执行此操作怎么办? sapply( myDF, fun
我在 tmp 目录中有一个 .stat 文件列表。 样本: a.stat=> abc,10 abc,20 abc,30 b.stat=> xyz,10 xyz,30 xyz,70 等等 我需要找到所有
我有许多 Excel 文件,我将在将它们另存为 CSV 文件后将它们加载到 R 中。每个 Excel 文件都有几个采用货币格式的列。我可以手动或使用 VBA 调整 Excel 中的每一列,但我更喜欢在
我是一名优秀的程序员,十分优秀!