r - 遍历列并将字符串长度添加为新列

标签 r loops

我有一个包含许多列的数据框,并且想为每个输出单独的列,并在其中包含每一行的长度。

我试图遍历列名,并为每个列输出一个附加了“_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中以这种方式使用循环吗?

最佳答案

您需要使用[[,它是$的编程等效项。否则,例如,当icol1时,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/

相关文章:

r - 对向量/列表的元素进行分组的函数

按组回归

r - 在 TO 覆盖一个函数中,我如何取回它?

r - biplot R 中特定点的文本标签

javascript - 在另一页显示 'sum'

loops - 在 Mathematica 中,我们如何将循环生成的许多图合并为一个图?

python 赛车冠军

function - R 存在函数吗?

r - 从 data.frame 中提取行

python - While 1 与 While True。哪一个更Pythonic?