我在SAS中有一个表,在一列中存储日期(例如“2005/10”)。 如何将其转换为SAS数据格式?
在其他许多尝试中,我尝试了这段代码:
数据测试;
format date YYMMS.;
date = input(ObservationMonth, YYMMS.);
put date=date9.;
run;
答案 0 :(得分:1)
您可以使用data want;
format date yymms.;
text="2005/10";
date=input(text,anydtdte.);
put date;
run;
信息。
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Read_Text_File {
public static void main(String[] args) {
System.out.println(getValues());
}
public static ArrayList<String> getValues() {
FileInputStream stream = null;
try {
stream = new FileInputStream("src/resources/java_txt_file.txt");
} catch (FileNotFoundException e) {
e.printStackTrace();
}
BufferedReader reader = new BufferedReader(new InputStreamReader(stream));
String strLine;
ArrayList<String> lines = new ArrayList<String>();
try {
while ((strLine = reader.readLine()) != null) {
String lastWord = strLine.substring(strLine.lastIndexOf(" ")+1);
lines.add(lastWord);
}
} catch (IOException e) {
e.printStackTrace();
}
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
return lines;
}
}
此信息检测大多数日期格式,并将字符存储值转换为SAS日期。
答案 1 :(得分:0)
一种方法是使用substr()
和mdy()
来提取日期组件:
data _null_;
ObservationMonth ="2005/10";
date =mdy(substr(ObservationMonth,6,2),1,substr(ObservationMonth,1,4));
put date = date9.;
run;
另一种选择是使用anydtdte
信息(注意结果可能因您的语言区域而异):
data _null_;
ObservationMonth ="2005/10";
date =input(ObservationMonth,anydtdte.);
put date = date9.;
run;
另一个选择是修改输入以启用YYMMDDw.
信息:
data _null_;
ObservationMonth ="2005/10";
date =input(ObservationMonth!!'/01', YYMMDD10.);
put date = date9.;
run;
答案 2 :(得分:0)