3 回答

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超3個(gè)贊
我有一個(gè)帶有p值列的dataframe,我想對這些p值進(jìn)行選擇。
> pvalues_anova
[1] 9.693919e-01 9.781728e-01 9.918415e-01 9.716883e-01 1.667183e-02
[6] 9.952762e-02 5.386854e-01 9.997699e-01 8.714044e-01 7.211856e-01
[11] 9.536330e-01 9.239667e-01 9.645590e-01 9.478572e-01 6.243775e-01
[16] 5.608563e-01 1.371190e-04 9.601970e-01 9.988648e-01 9.698365e-01
[21] 2.795891e-06 1.290176e-01 7.125751e-01 5.193604e-01 4.835312e-04
選擇方式:
anovatest<- results[ - which(results$pvalues_anova < 0.8) ,]
如果我在R中使用它,這個(gè)函數(shù)可以很好地工作,但是如果我在另一個(gè)應(yīng)用程序(銀河)中運(yùn)行它,沒有e-01G.4.835312e-04不會被扔出去。
還有其他方法來標(biāo)注p值嗎,比如0.0004835312而不是4.835312e-04?你可以:
使用以列表作為值的映射。Map<KeyType, List<ValueType>>.
創(chuàng)建一個(gè)新的包裝類,并將此包裝器的實(shí)例放在映射中。Map<KeyType, WrapperType>.
使用元組類(節(jié)省創(chuàng)建大量包裝器)。Map<KeyType, Tuple<Value1Type, Value2Type>>.
并排使用多重地圖。
實(shí)例
1.以列表為值的映射
// create our map
Map<String, List<Person>> peopleByForename = new HashMap<>();
// populate it
List<Person> people = new ArrayList<>();
people.add(new Person("Bob Smith"));
people.add(new Person("Bob Jones"));
peopleByForename.put("Bob", people);
// read from it
List<Person> bobs = peopleByForename["Bob"];
Person bob1 = bobs[0];
Person bob2 = bobs[1];
這種方法的缺點(diǎn)是列表沒有綁定到兩個(gè)值。
2.使用包裝類
// define our wrapper
class Wrapper {
public Wrapper(Person person1, Person person2) {
this.person1 = person1;
this.person2 = person2;
}
public Person getPerson1 { return this.person1; }
public Person getPerson2 { return this.person2; }
private Person person1;
private Person person2;
}
// create our map
Map<String, Wrapper> peopleByForename = new HashMap<>();
// populate it
Wrapper people = new Wrapper();
peopleByForename.put("Bob", new Wrapper(new Person("Bob Smith"),
new Person("Bob Jones"));
// read from it
Wrapper bobs = peopleByForename.get("Bob");
Person bob1 = bobs.getPerson1;
Person bob2 = bobs.getPerson2;
這種方法的缺點(diǎn)是,您必須為所有這些非常簡單的容器類編寫大量的鍋爐板代碼。
3.使用元組
// you'll have to write or download a Tuple class in Java, (.NET ships with one)
// create our map
Map<String, Tuple2<Person, Person> peopleByForename = new HashMap<>();
// populate it
peopleByForename.put("Bob", new Tuple2(new Person("Bob Smith",
new Person("Bob Jones"));
// read from it
Tuple<Person, Person> bobs = peopleByForename["Bob"];
Person bob1 = bobs.Item1;
Person bob2 = bobs.Item2;
在我看來,這是最好的解決辦法。
4.多重地圖
// create our maps
Map<String, Person> firstPersonByForename = new HashMap<>();
Map<String, Person> secondPersonByForename = new HashMap<>();
// populate them
firstPersonByForename.put("Bob", new Person("Bob Smith"));
secondPersonByForename.put("Bob", new Person("Bob Jones"));
// read from them
Person bob1 = firstPersonByForename["Bob"];
Person bob2 = secondPersonByForename["Bob"];
此解決方案的缺點(diǎn)是,這兩個(gè)映射之間的關(guān)系并不明顯,編程錯(cuò)誤可能導(dǎo)致兩個(gè)映射不同步。

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超6個(gè)贊
HashMap<K, ArrayList<String>> map = new HashMap<K, ArrayList<String>>()
MultiValuedMap<K, String> map = new MultiValuedHashMap<K, String>();
map.put(key, "A");map.put(key, "B");map.put(key, "C");Collection<String> coll = map.get(key);
coll
添加回答
舉報(bào)