r - R在循环中获取列名
问题描述
这听起来应该很容易,但我在 R 中找不到如何执行此操作。如何循环遍历数据框的所有列并将列名和其他值(标签列值)添加到新数据框?下面df
代码中的数据框是现有数据框,仅包含数字列和一个label
特征(只有 0 或 1 个值)。在下面的代码中,该colnames(i)
部分不起作用,因为它需要一个列表。如何i
在循环中打印列名?for 循环中的biserial.cor(i, df$label)
函数需要两个参数。其中第一个需要是数字向量,第二个应该是布尔向量(只有 0 或 1)。所以预期的结果bis.cor.table
应该如下:
colname corrWithLabel
col1 0.45
col2 0.12
col3 0.8
#Create new dataframe
bis.cor.table = data.frame(colname = character(),
corrWithLabel = numeric())
#Loop trough df and add values to dataframe bis.cor.table
for(i in = df) {
new.df = data.frame(colnames(i), biserial.cor(i, df$label))
names(de) = c("colname", "corrWithLabel")
bis.cor.table = r.bind(bis.cor.table, new.df)
}
解决方案
看起来你的代码中有很多错别字,但我想我理解逻辑。通过修复它们,这就是我所拥有的:
df = data.frame(col1 = runif(10),
col2 = runif(10),
col3 = runif(10),
label = sample(c(0,1), size = 10, replace = TRUE))
#Create new dataframe
bis.cor.table = data.frame(colname = character(),
corrWithLabel = numeric())
#Loop trough df and add values to dataframe bis.cor.table
for(i in 1:ncol(df)) {
new.df = data.frame(colnames(df)[i], biserial.cor(df[i], df$label))
names(new.df) = c("colname", "corrWithLabel")
bis.cor.table = rbind(bis.cor.table, new.df)
}
不确定这是不是最好的方法,而且我无法测试结果是否准确。
推荐阅读
- javascript - 如何将升序数字添加到数组中的每 6 项?
- javascript - 将实体绑定到模态
- python - python pandas通过布尔表达式选择loc
- javascript - 地址框无法在电子邮件中显示
- json - ng-apimock 在没有双引号的模拟中使用全局变量
- c# - 如何从 SQL Server 中提取数据并将相同的数据插入 ctreeACE?(实时)
- javascript - 使用 jQuery 和 PHP 在项目符号后插入换行符
- r - 用数字替换值
- tensorflow - 多个网络共享变量
- symfony - 有 2 个可能的地方的过渡 [Symfony 工作流程]