小编Mat*_*att的帖子

x[j] 中的错误:在 R 中使用子集时无效的下标类型“列表”

我在尝试对数据框进行子集化时遇到问题。这是我用来导入数据文件和子设置的代码;

fiber_val<-read.csv(file.choose(), header=TRUE, dec=",", check.names=FALSE,stringsAsFactors=FALSE)
y<-14
z<-16
fiber_val[, y:z] <- sapply(fiber_val[, y:z], as.numeric)

fiber_val$sg<-(fiber_val$airdryweight/1.077)/fiber_val$waterweight

fiber_val<-subset(fiber_val, select = c(id,sample,standtreedisk,density,sg))
Run Code Online (Sandbox Code Playgroud)

运行最后一行后,它对我大喊大叫

Error in x[j] : invalid subscript type 'list'
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的数据集的一部分;

id  stand   tree    disk    species region  standtreedisk   nirblock    sample  barktopith  pithtobark  length  sections    ringssection    airdryweight    waterweight density
1   160 7   10  131 6   160x7x10    749 16907   4   2   52  5   2   0.6489  1.3245  0.48992
2   160 7   10  131 6   160x7x10    749 16905   2   4   52  5   3   0.6062  1.2206  0.49664
3 …
Run Code Online (Sandbox Code Playgroud)

r subset dataframe

5
推荐指数
1
解决办法
1万
查看次数

如果满足两个条件,则平均两行

我有一个名为的数据框df,看起来像这样;

id face value
1   r   15
1   r   11
1   t   16
1   t   17
2   r   13
2   r   25
2   t   12
2   t   18
3   r   30
3   r   20
3   t   19
3   t   10
Run Code Online (Sandbox Code Playgroud)

因此,如果满足两个条件,我需要平均每一行.条件是; 如果idface是相同的,那么平均value.

例如,if id=1,face=r然后是平均值15+11并将计算值13放在新列中.我必须为整个数据帧(2000行,500行不同id)执行此操作.

PS; 对于每一个face我必须有不同的列.我的意思是,例如,如果id=1face=r把平均value在一个名为新列newr,如果id=2face=r投入平均value在一个名为新列newr …

conditional r dataframe

1
推荐指数
1
解决办法
190
查看次数

标签 统计

dataframe ×2

r ×2

conditional ×1

subset ×1