在for循环

时间:2018-03-03 18:55:11

标签: r for-loop

我编写了一个函数,为数据框中的所有变量打印频率表,这些变量是因子。

为了知道打印频率表的变量,我添加了

print(colnames(dataframe)[i])

打印列名。

功能:

freq_factor <- function(dataframe, n_factors = 5)
  {
  for (i in 1:length(dataframe))
    {
    if ((is.factor(dataframe[,i]) == "TRUE") & (nlevels(dataframe[,i]) <= 10))
      {
      print(colnames(dataframe)[i])
      print(table(dataframe[,i]))
      }
    }
}

我想要一个输出,其中变量1的频率表和变量2的列名之间有一条白线。

期望的输出:

[1] "column name 1"
factor 1 factor 2
1           10

[1] "column name 2"
factor 1 factor 2 factor 3
10        6         16

但是我在变量1的列名和变量1的频率表之间得到一条白线,在频率表之后没有白线。

实际输出:

[1] "column name 1"

factor 1 factor 2
1           10
[1] "column name 2"

factor 1 factor 2 factor 3
10        6         16

如何在频率表后获得白线?

1 个答案:

答案 0 :(得分:0)

使用此cat语句代替第一个print语句:

cat("\n", colnames(dataframe)[i], sep = "")