循环使用字数

时间:2014-06-11 19:50:05

标签: r

r-studio新手,我有一个两列csv文件(响应,id),响应列有一个指定的ID号。例如,行1-250被分配了id 1,行251-311被分配了id 2,等等。

我可以编写一个接受id号的循环,R根据传递的id号生成字频吗?输出将是新的csv文件。

这可行吗?任何例子将不胜感激。

2 个答案:

答案 0 :(得分:1)

当然可以!

例如:

# Generate some random data
data <- data.frame(id=rep(1:10, each=200), val=rnorm(2000))
h <- hist(subset(data, id=5)$val, plot=0)
write.csv("output.csv", h$counts)

修改 这是如何工作的:

subset(data, id=5)只会获得名为id的列等于5的行。

现在,一旦我们只选择了我们想要的行(显然5只是一个例子,你可以传递你想要的任何值,也可以在变量中),你可以使用$得到你想要计算的值。操作

所以subset(data, id=5)$val表示:获取id = 5的所有行,然后考虑名为val的列。

在我的示例中,val是一个整数,因此我使用hist函数来获取计数(plot=0仅用于抑制图形输出)。如果您有字符串,则可以使用table函数。

最后,write.csv将结果输出到csv文件。有关这些功能的(多个)选项的详细帮助,请参阅?write.csv?write.table

答案 1 :(得分:1)

我可能会误读原始问题,但OP会询问与指定ID号码组相对应的字数。

如果是这样,dplyr和正则表达式的正则表达式是否满足需要?类似的东西:

new.df <- data %.%  # start with the two-column data frame of id and word strings
  group_by(id) %.%  # aggregate the ids, e.g. id1, id2
  summarise(WordCount = gsub("^.*\\s", "", dataResponse) # count all the words in the 2nd column.  There are multiple ways to count words.