r - 如何在循环中获取标签

这是我的示例的一部分。请假设我有超过 12 ds

dat<-read.table (text=" d1  d2  d3  d4  d5  d6  d7  d8  d9  d10 d11 d12
    100 100 60  50  100 100 20  60  100 100 100 20
    75  75  60  50  75  75  20  100 75  75  75  20
    75  40  60  50  41  41  20  100 75  75  75  75
    78  49  60  50  45  41  20  100 75  75  75  75
    75  50  60  50  50  48  20  60  75  75  75  75
    75  48  60  50  44  49  20  40  10  75  75  10
    20  10  60  50  100 100 20  100 100 100 100 20
    75  75  60  50  75  75  20  50  75  39  75  10
    75  75  60  50  75  75  20  90  75  75  75  40
    22  10  60  50  75  75  20  90  75  10  75  10
    ", header=TRUE)

我想在循环中获取这个表。

D   sd
d1  25.44711
d2  29.01647
d3  0
d4  0
d5  22.11586
d6  22.26831
d7  0
d8  23.78141
d9  24.61368
d10 26.89672
d11 10.54093
d12 28.62109

循环是:

for(i in seq_along(dat)) {
  k<- dat[[i]]
  if(class(k) %in%  c("numeric", "integer"))  
    print(sd(k))
  else print("F")
}

最佳答案

你不需要循环:

data.frame(
    D = names(dat),
    sd = sapply(dat, sd) 
)
#       D       sd
# d1   d1 25.44711
# d2   d2 29.01647
# d3   d3  0.00000
# d4   d4  0.00000
# d5   d5 22.11586
# d6   d6 22.26831
# d7   d7  0.00000
# d8   d8 23.78141
# d9   d9 24.61368
# d10 d10 26.89672
# d11 d11 10.54093
# d12 d12 28.62109

https://stackoverflow.com/questions/72518387/

相关文章:

bash - awk 或条件

java - BitSet 的 set 方法如何处理向左移动的位?

python - 我的错误在哪里?在Python中检查密码是否正确

java - Spring Boot-2.1.3 : Parallel Methods Invoca

awk - 在 text.file 中切换列

c# - 自定义类作为 C# 中字典的键不起作用

c# - 返回匿名类型的 IEnumerable

vector - 将具有多个参数的函数应用于 Julia 中的向量

multithreading - 我怎样才能避免这个循环中的 "i"依赖?语言

python - 通过多级函数传递 kwargs,解包其中一些但传递所有函数