我的CSV数据如下:
code, label, value
ABC, len, 10
ABC, count, 20
ABC, data, 102
ABC, data, 212
ABC, data, 443
...
XYZ, len, 11
XYZ, count, 25
XYZ, data, 782
...
每个data
的{{1}}条目数不同。 (这对我的问题无关紧要;我只是指出来。)
我需要分析每个code
的{{1}}条目。这包括计算中位数,绘制图表等。这意味着我应该为每个data
分出code
并将其设为数字?
有没有比这种更好的方法:
data
答案 0 :(得分:1)
split
和list2env
允许您为每个x
分隔您的data.frame code
,为code
中的每个级别生成一个data.frame:< / p>
list2env(split(x, x$code), envir=.GlobalEnv)
或只是
my.list <- split(x, x$code)
如果您更喜欢使用列表。
答案 1 :(得分:1)
我不确定我是否完全理解你问题的最终目标,你是否想要一些关于你能做什么的指示?因为有很多可能的解决方案。
当你问:我需要分析每个代码的数据条目。这包括计算中位数,绘制图表等。这意味着我应该将每个代码的数据分开并使其成为数字?
答案是否定的,你没有严格要求。您可以使用R函数为您执行此任务,例如:
x = read.csv('dataFile.csv', header=T)
#is it numeric?
class(x$value)
# if it is already numeric you shouldn't have to convert it,
# if it strictly numeric I don't know any reason why it
# should be read as strings but it happens.
aggregate(x,by=list(x$code),FUN="median")
boxplot(value~code,data=x)
# and you can do ?boxplot to look into its options.