Функция pmax
была бы полезной здесь. Единственный улов состоит в том, что в качестве параметров требуется куча векторов. Вы можете преобразовать data.frame в параметры с помощью do.call
. Я также установил 9 значений в NA, как это было предложено другими, но сделайте это, используя несколько нетрадиционную команду is.na<-
.
do.call(pmax, c(`is.na<-`(df, df==9), na.rm=T))
# [1] 5 6 7
Определение вашего типа:
type keys struct {
Key1 map[string]key1 `yaml:"key1"`
}
type key1 struct {
Attr1 string `yaml:"attr1"`
Attr2 string `yaml:"attr2"`
Attr3 string `yaml:"attr3"`
List1 []string `yaml:"list1"`
List2 []string `yaml:"list2"`
}
Использует эту структуру:
key1:
stuff:
attr1: "attr1"
attr2: "attr2"
attr3: "attr3"
list1: ["a", "b", "c"]
list2: ["d", "e", "f"]
morestuff:
attr1: "attr1"
attr2: "attr2"
attr3: "attr3"
list1: ["a", "b", "c"]
list2: ["d", "e", "f"]
Поскольку для вашего типа данных key1
должен содержать карту ключей к structs - добавление уровня к иерархии, которая не существует. Для YAML, который вы опубликовали, ваша структура должна быть:
type keys struct {
Key1 key1 `yaml:"key1"`
}
type key1 struct {
Attr1 string `yaml:"attr1"`
Attr2 string `yaml:"attr2"`
Attr3 string `yaml:"attr3"`
List1 []string `yaml:"list1"`
List2 []string `yaml:"list2"`
}