我有一个包含许多列的数据框,并且想为每个输出单独的列,并在其中包含每一行的长度。
我试图遍历列名,并为每个列输出一个附加了“_length”的对应列。
例如col1 | col2将转到col1 | col2 | col1_length | col2_length
我使用的代码是:
df <- data.frame(col1 = c("abc","abcd","a","abcdefg"),col2 = c("adf qqwe","d","e","f"))
for(i in names(df)){
df$paste(i,'length',sep="_") <- str_length(df$i)
}
但是,这会引发错误:
invalid function in complex assignment.
我可以在R中以这种方式使用循环吗?
最佳答案
您需要使用[[
,它是$
的编程等效项。否则,例如,当i
为col1
时,R将查找df$i
而不是df$col1
。
for(i in names(df)){
df[[paste(i, 'length', sep="_")]] <- str_length(df[[i]])
}
关于r - 遍历列并将字符串长度添加为新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18462736/