好的,這聽起來可能是一個非常簡單的問題,但我很難處理它。
所以我的數據格式如下: (number)|(name)|(number)|(name)|(number).... 等等。我有一個循環查看字符串,通過以下方式解析信息分隔符('|'),然後獲取該新列表中的所有其他條目(所有“名稱”)並僅將這些條目放入新列表中。 然後使用該新列表創建一大堆列。 我發現,然後我從該字符串中使用並放置在每列中的數值在技術上是一個字符,因此當我嘗試在列上使用公式時,它只是將所有內容都點出來。 我要做的是創建一個新列並使用該列上的公式。 我的問題是:我已經有一個我想要的所有列名的列表,有沒有辦法創建具有相同名稱的新列,只需用可以處理格式的列替換我創建的初始列?
這個問題可能真的很奇怪,這是我處理解析/列製作的一些腳本:
列表 = {};
// 遍歷 :Test_Result 的第一行以獲取引腳名稱
one_test_result_list = words(column(dt2,"Test_Result")[1], "|");
For(j = 1, j <= nitems(one_test_result_list)/2, j++,
分配(列表,one_test_result_list[j*2]);
);
// 製作引腳列表的新列
對於(g = 1,g <= nitems(列表),g++,
dt2 << 新列(列表,數字,連續,格式(“最佳”,12));
);
// 遍歷 :Test_Result 的行(存儲字符串的地方)
對於 (i = 1, i <= nrows(dt2), i++,
one_test_result_list = words(column(dt2,"Test_Result") , "|");
For(k = 1, k < nitems(one_test_result_list)/2, k++,
// 將所有新解析的結果存入新值
列(dt2,列表) = 數(one_test_result_list[(k*2)+1]);
);
);
這很有效,我剛剛發現了整個製作新列的事情...... 我希望他們擁有我已經給他們的列名,我只想能夠將格式放在他們身上,而不會將每個值都變成一個點。 (我確實在新列上對此進行了測試,並且值實際上正確更改了......)
太感謝了!
對不起,我的措辭很奇怪。 在我的字符串中,我忽略了第一個數字(因為它沒用),然後它是一個名稱,後跟該名稱的值。 我創建了一個新列表,只收集所有名稱,然後使用該列表填充所有新列名。 我確實將列設置為數值,我什至用它們對應的數值作為 num 填充列。如我附上的這段代碼所示(尤其是粗體線):
// 製作引腳列表的新列
對於(g = 1,g <= nitems(列表),g++,
dt2 << 新列(列表,數字,連續,格式(“最佳”,12));
);
對於 (i = 1, i <= nrows(dt2), i++,
one_test_result_list = words(column(dt2,"Test_Result") , "|");
For(k = 1, k < nitems(one_test_result_list)/2, k++,
// 將所有新解析的結果存入新值
列(dt2,列表) = 數(one_test_result_list[(k*2)+1]);
);
);
即使我將值指定為數字並且將列指定為保存數值,但每當我對該列執行任何類型的操作(即使該列成為所有絕對值)時,它都會將該列中的值更改為點. 但是,如果我創建一個新列,並在我創建的第一列中獲取值,並為該列設置一個公式,它就會正常運行並顯示操作。 似乎我需要創建兩倍於我最初存儲值所需的列,然後再創建另一列來使用公式。 我不能只在我創建的第一列上使用公式。 問題是,我想保留我最初分配的列名。 我不知道為什麼 JMP 不允許我對新列執行操作。
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />不確定我是否完全理解您的問題,但是“然後我從該字符串中使用並放置在每列中的數值在技術上是一個字符,所以當我嘗試在列上使用公式時,它只是將所有內容都添加了“暗示了一些事情......
JMP 列的數據類型可以定義為“數字”或“字符”以保存所需類型的數據,並且(通過“列信息...”對話框或發送 JSL 消息“myCol << DataType( "Numeric") 或 myCol << DataType("Character")') 您應該將其設置為您想要的。 使用值填充列時,可以使用“Char()”(使用“Num()”)將數值轉換為字符值(從字符轉換為數值)。 如果您對 JMP 無法解釋為數字的文本值使用“Num()”,它將分配一個缺失值(“.”)。