我有一个像这样的数据框:
Items Years Counts Blah Bleh
1 A 1990 4565 ghf kop
2 B 1990 4566 ecc jde
3 A 1991 4567 sfg iwx
4 D 1991 4568 ert lwi
5 E 1991 4569 loi xcz
6 B 1992 4570 kji mnb
我希望能够基于通过函数传递项目从数据框中提取项目,年份和计数。我不想返回所有列例如:
function(word){length(word)>5)}
如果Item中的单词长度超过5,我想返回该值的3列,并留下Blah和Bleh列
到目前为止,我已经尝试了
result <- sapply(df$Items, 1, function)
但是它返回一个错误“dim(X)必须具有正长度”。执行此步骤后,我将不确定该去哪里,因为这只会返回行的索引,如果我是正确的,函数返回TRUE。
我正在与R斗争,因为我发现很难停止从python角度思考,我将不得不循环遍历所有内容。任何帮助将不胜感激
答案 0 :(得分:0)
您可能希望投资学习表格数据存储&amp;操作界面,如data.table
或dplyr
。这是一个dplyr
解决方案,它使用正则表达式select
感兴趣的列:
library(dplyr)
library(stringr)
df_foo = read.table(
textConnection(
" Items Years Counts Blah Bleh
1 A 1990 4565 ghf kop
2 B 1990 4566 ecc jde
3 A 1991 4567 sfg iwx
4 D 1991 4568 ert lwi
5 E 1991 4569 loi xcz
6 B 1992 4570 kji mnb"
),
header = TRUE, stringsAsFactors = FALSE
)
df_foo %>%
select(matches("(.){5,}"))