r - R 中的函数、For 循环和条件
问题描述
我得到了一个 .csv 数据集,我想使用 for 循环为数据建立一个函数。数据集有 5 列,数据由因子或数字组成。如果数据是一个因素,什么都不应该做,只需打印出列的名称和它的类。如果数据是数字,则打印出名称、类以及两个函数(我事先已经创建)。
我对如何组织函数/for循环的语法有点迷茫。
p.data <- read.csv("file.csv")
function(
x){
for.loop.variable <- for(index in data.csv){
if (class(x)) == "factor"
{cat("Name of Column is:", names(x*), "\n",
"Class of Column is :" , (class(x)))
} else {
cat("Name of Column is:", names(x*), "\n",
"Class of Column is :" , (class(x)),"\n",
"Function 1 is :", function.1(x), "\n",
"Function 2 is :", function.2(x), "\n")
}
}
}
return (for.loop.variable)
我认为这是正确的设置,但我有 3 个问题我似乎无法弄清楚:
1- for 循环迭代如何发挥作用?我根本没有在条件句中引用它,我不知道该怎么做?
2*- 如何调用/打印列名?我不认为它是名称(x),但我不太确定除此之外它会是什么。
3- return () 是否正确?它是否应该从变量中返回整个 for 循环(一旦我弄清楚如何将它与实际问题联系起来)?
请让我知道在哪里修复错误,以便我可以正确学习。
解决方案
我认为这个问题是出于教育目的,因此提出了一个简单的 for 循环:
class_print <- function(df){
for(i in 1:ncol(df)){
if(is.factor(df[,i])){
print(paste0("Name of column is ", names(df[i]), "class is factor ",collapse = ""))
}
else{
print(paste("Name of column is ", names(df[i]),"class is ", class(df[,i]),collapse=""))
}
}
}
测试:
class_print(iris)
[1] "Name of column is Sepal.Length class is numeric"
[1] "Name of column is Sepal.Width class is numeric"
[1] "Name of column is Petal.Length class is numeric"
[1] "Name of column is Petal.Width class is numeric"
[1] "Name of column is Speciesclass is factor "
推荐阅读
- python - 尝试返回值除了
- php - 通过 PHP 将数据插入 SQL Server 时出现问题
- python - 删除 matplotlib 中的工具栏按钮
- delphi - Delphi:避免运行时组件选择破折号
- python - 无法将日期转换为 UTC
- javascript - 如何使用 jQuery 到达 div 顶部但不滚动?
- javascript - 动态填充输入字段时如何启用提交按钮?
- scala - Kafka 2.3.0 生产者和消费者
- rest - 如何为模型之间的多个关系显示 Hateoas _link?
- javascript - 带有菜单项链接锚的 jQuery 错误:语法错误,无法识别的表达式