哪个R对象可以容纳变量,以便可以迭代该对象?

时间:2018-11-23 20:54:09

标签: r for-loop variables

这似乎很简单,但是我正在转动车轮。

我有80个字符变量。我想1)查看每个变量中的唯一值,2)查看唯一值的数量,3)将部分或全部变量转换为因子。

我可以通过显式命名列来一步一步地完成此操作:

first

...尽管这会产生错误:

df$var1 # "val2" "val2" "val1" "val2" ... 
unique(df$var1) # "val1" "val2" "val3" 
length(unique(df$var1)) # 3 
df$var1 = as.factor(df$var1)

但是当我创建字符变量列表并尝试与上面相同时,它将不起作用。

levels(df@var1)
# Error in levels(df@var1) : 
# trying to get slot "var1" from an object (class "tbl_df") 
# that is not an S4 object 

一旦完成上述工作,我就可以使用for循环遍历列表:

# create list of char vars
char_vars_names <- names(df[, sapply(df, class) == 'character'])
char_vars_names
#[1] "var1" "var2" "var3" ...

df$char_vars_names[1]  # NULL
# Warning message: Unknown or uninitialised column: 'char_vars_names'.

unique(df$char_vars_names[1])  # NULL
length(unique(df$char_vars_names[1]))  # 0

}

关于char_vars_names对象或我的代码中的其他内容使它不起作用是什么?

如果有帮助,请在上面的代码之前输入我的信息和数据:

for (i in range(length(char_vars_names))) {
    # code

0 个答案:

没有答案